从另一个 url 加载动态模块 - angular4

2024-03-12

是否可以引用模块(已以 umd 或 es 格式编译)并将其动态加载到已编译的角度应用程序中?

  1. 主 shell 应用程序托管于:http://plugin_shell.mydomain.com http://plugin_shell.mydomain.com
  2. 模块(带有一堆组件、服务等):编译后的代码 托管在另一个网址。让我们说:http://plugins/modules/myfirstplugin.umd.js http://plugins/modules/myfirstplugin.umd.js
  3. 当外壳加载时。加载所有模块,渲染具体组件,参考 服务、使用等级等。

我尝试使用 SystemJsNgModuleLoader.load 加载模块,但它似乎确实适用于此类用例。

Thanks

编辑:同样的问题(没有答案):如何动态加载外部 Angular 2 模块(例如从外部 module.bundle.js 提供服务) https://stackoverflow.com/questions/42401013/how-to-dynamically-load-external-angular-2-module-like-served-from-an-external


你可以这样做:

@Component({
  providers: [
    {
      provide: NgModuleFactoryLoader,
      useClass: SystemJsNgModuleLoader
    }
  ]
})
export class ModuleLoaderComponent {
  constructor(private _injector: Injector,
              private loader: NgModuleFactoryLoader) {
  }

  ngAfterViewInit() {
    this.loader.load('app/t.module#TModule').then((factory) => {
      const module = factory.create(this._injector);
      const r = module.componentFactoryResolver;
      const cmpFactory = r.resolveComponentFactory(AComponent);

      // create a component and attach it to the view
      const componentRef = cmpFactory.create(this._injector);
      this.container.insert(componentRef.hostView);
    })
  }
}

Read 以下是您需要了解的有关 Angular 动态组件的知识 https://blog.angularindepth.com/here-is-what-you-need-to-know-about-dynamic-components-in-angular-ac1e96167f9e更多细节。具体来说Dynamic module loading and compilation部分。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从另一个 url 加载动态模块 - angular4 的相关文章

  • Angular 4:如何使用 HTTPClient 读取文本文件的内容

    我的 Angular 4 项目目录中有一个 txt 文件 我想读取其内容 怎么做 下面是我使用的代码 该文件位于 app 文件夹内的 files 文件夹中 我拥有 HTTPClient 代码的组件位于 app 文件夹内的 httpclien
  • 如果我不使用超时,Angular 2 焦点将不起作用

    正如您所看到的 如果我打算集中输入 我将使用 setTimeout 如果我删除 setTimeout 焦点不起作用 div div
  • 如何等待,直到我从 Angular 7 中的后端 Spring Boot API 得到响应

    我想使用 http post 方法的结果从一条路线导航到另一条路线 但导航是在没有 http post 响应的情况下发生的 当我调试代码时 响应越来越晚 我怎样才能解决这个问题 有什么办法可以等待执行直到后端返回响应吗 当我单击按钮时 将执
  • 使用 Angular 4 将新行添加到 mat-table 中

    如何从输入字段手动将新行添加到 Angular Material 表中 请看这张图片 如果我添加状态名称和状态代码 它应该出现在下表中 请帮助我如何使用 Angular 4 来实现它 我整理了一个简单的示例 应该可以很好地提示您从哪里开始
  • 测试 - 存根服务方法未定义

    我已经在非常简单的代码上编写了一个非常简单的测试 但由于某种原因存根服务方法未定义 当我使用 Jasmine Spy 时 它可以工作 但对于这样一个简单的任务 有人可以解释一下为什么会发生这种情况吗 我删除了 import 语句只是为了减少
  • 如果禁用,Scss 会更改 mat-checkbox 的颜色

    在我的组件的 scss 文件中 我可以在选中时设置 mat checkbox 的背景颜色 deep mat checkbox checked mat accent mat checkbox background mat checkbox i
  • mat-tab-group 不是 Angular 9 中的已知元素

    我正在使用 Angular 9 和 Angular Material 9 2 4 我正在尝试使用mat tab 组在我的 component html 中 但我不断收到错误 mat tab group is not a known elem
  • 如何在.NET 3.5中进行动态对象创建和方法调用

    创建类对象的代码看起来如何 string myClass MyClass 上面的类型 然后调用 string myMethod MyMethod 在那个物体上 Use Type GetType string http msdn micros
  • Angular service-worker范围在安装过程中遇到错误

    我正在尝试使用 Angular Service Worker 但在尝试使用它时出现错误 这些是我的版本 Angular CLI 15 2 0 Node 16 18 1 Package Manager npm 8 19 2 OS linux
  • 无法在 Angular 10 中的“pdf-viewer”=>“ng2-pdf-viewer”中显示 blob url

    我有一个 API 它将上传的文件作为 blob 返回 当我尝试绑定时src如果使用 blob URL 则它不会显示任何内容 但是 当我尝试绑定直接 URL 时 它可以显示 PDF 文件 这是我下面给出的代码 我的 TS 代码 downloa
  • Angular 6 Asp.Net(非 Core)Web Api CORS 请求失败

    我正在构建一个 Net Web Api 它将由 Angular 6 客户端使用 但出于某种原因 我无法使其在我的开发环境中工作 我从一个非常简单的 Web Api 开始 它只返回一个字符串 用于前端和后端测试目的之间的通信 GET api
  • 如何在 ngrx/effects 中执行 if/else 操作?

    我正在使用 ngrx effects 我想根据以下情况分派不同的操作foo商店里的状态 这就是我现在正在做的 Effect foo1 this updates whenAction Actions FOO filter obj gt obj
  • Angular4 - 滚动到锚点

    我正在尝试对同一页面上的锚元素进行简单的滚动 基本上 用户点击 尝试 按钮 它就会滚动到页面下方 ID 为 登录 的区域 现在 它正在与一个基本的id login a href login a 但它正在跳转到该部分 理想情况下 我希望它滚动
  • 如何在 RxJS 订阅方法中等待

    在 RxJS 主题的订阅回调内部 我想要await on an async功能 下面是打字稿转译器抱怨的代码示例 错误 131 21 TS2304 找不到名称 await async ngOnInit this subscriber dat
  • ngrx 存储是否持久?

    ngrx 存储是否持久 换句话说 我们可以关闭浏览器重新打开它 并检索添加到ngrx 商店 https github com ngrx platform 目前 ngrx store 不支持此类功能 但是您可以通过使用类似的库来维护状态ngr
  • 如何使用 *ngFor 迭代对象键

    我想在 Angular 2 中使用 ngFor 迭代 object object 问题是该对象不是对象的数组 而是包含更多对象的对象的对象 data id 834 first name GS last name Shahid phone 0
  • 如何在 Angular 2 应用程序中使 DateAdapter 单例?

    我正在开发一个带有延迟加载模块的 Angular 7 应用程序 我也使用有角度的材料组件 我想在日期选择器组件中本地化并支持多个区域设置 当应用程序语言发生变化时 我想在整个应用程序中全局更改它 可以通过 DateAdapter setLo
  • 415 不支持的媒体类型; Angular2 到 API

    我是 Angular 2 的新手 我面临着一个无法找到解决方案的问题 当我尝试从 Angular 2 发布到 API 时 我得到 415 不支持的媒体类型 角度2代码 onSubmit value any console log value
  • 没有导出的成员/节点模块

    我刚刚开始使用 5 分钟快速入门找到的 Angular 2 Typescripthere https angular io docs ts latest quickstart html 我遇到了一个看起来很常见的问题 但可能有点不同 我遇到
  • Angular 2 ngModel 不工作(仅限 javascript)

    所以我是 Angular2 javascript 的新手 我能够通过 5 分钟的 Angular 教程制作一个简单的 Hello world 我对 Angular2 的新变化很好奇 我开始阅读 Angular2 Js 文档 但我发现它不完整

随机推荐

  • 如何使用 JavaCV 从网络摄像头捕获和录制视频

    我是 JavaCV 新手 我很难找到关于我感兴趣的主题的不同问题的好教程 我已经成功地从我的网络摄像头实现了某种实时视频流 但问题是我使用我在网上找到的这段代码片段 Override public void run FrameGrabber
  • 如何设置 UIDatePickerModeCountDownTimer 的最大时间?

    我想问一下iOS倒计时最大时间怎么设置 例如最多1小时30分钟 倒数计时器是从UIDatePicker s mode Thanks EDIT 有人说我必须设置最小 最大日期 我只是在故事板中设置它们 但我没有看到任何区别 设置的时间是我当地
  • 通过 ssh 启动时 Docker 容器 mongod 错误

    我已经在 docker 容器上安装了 mongodb 并在 ubuntu 14 04 上安装了 openssh 容器正在使用 ssh 运行 但是当我 ssh 进入容器时 尝试启动 mongod 时出现以下错误 root 430f9502ba
  • 位置侦听器超时

    我当前正在使用计时器来确定位置监听器是否超时 问题是 GPS 仍然打开 我不知道为什么 当位置侦听器超时时 是否有一种可以重写的方法或更优雅的方法 考虑向您的位置管理器添加 GPS 状态侦听器 当 GPS 启动 停止 接收第一次定位或卫星状
  • Javascript - 在一页上复制多个文本区域的文本按钮

    我已经搜索过该网站的类似问题 但我仍然不知所措 基本上 我正在为一位即将离职的同事接手一个项目 他的 Intranet 页面计划应该有多个文本区域 每个文本区域都有自己的预定义文本和自己的 复制文本 按钮 单击时 它会复制到用户的剪贴板 我
  • DrawerLayout 和多窗格布局

    我的应用程序使用多窗格布局 http developer android com design patterns multi pane layouts html显示作业列表 每个Assignment可以放在一个AssignmentCateg
  • 我的自动装配数据源在 Spring 中返回 null,这是怎么回事?

    我正在尝试设置我的 dataSource 以获取连接 但它在 conn dataSource getConnection 上返回 null 这是我的 DAO 中的相关代码 Autowired public void setDataSourc
  • 无法登录部署在 Tomcat7 上的 Apache Usergrid

    我在 Ubuntu 14 04 LTS 上下载并构建了 Apache Usergrid 并按照以下给出的说明在本地 tomcat7 服务器上部署了 ROOT warhttps usergrid incubator apache org do
  • Bittorrent:为什么peers字段的值是二进制的,而不是Bencoded列表?

    我正在尝试用 C 语言实现 Bittorrent 首先 在编写代码片段之前 我尝试使用网络浏览器将以下消息 URL 发送到跟踪器服务器 你可以试试这个网址 http torrent ubuntu com 6969 announce info
  • 如何使用 Spark Scala 将 CSV 行拆分为元组

    这是我想通过 Scala 检索的数据 数据如下 用户ID 电影ID 1 1172 1 1405 1 2193 1 2968 2 52 2 144 2 248 首先我想跳过第一行 然后通过 split 分割用户和电影并映射到 userID m
  • 如何从 UITestControl 获取 ItemStatus?

    The UI自动化框架 http msdn microsoft com en us library ms747327 aspx有一个基类 自动化元件 http msdn microsoft com en us library system
  • md5(file_contents_as_string) 等于 md5_file(/path/to/file) 吗?

    If I do 这将始终产生与以下内容相同的哈希值 是的 他们返回相同的 var dump md5 file get contents FILE var dump md5 file FILE 在我的例子中返回这个 string 32 4d2
  • 在没有注释的情况下将 Hibernate 迁移到 JPA

    我有一个大型的非 Java EE 基于 JSF 的 Web 应用程序项目 我们的系统是分层的 在源代码意义上 有一个数据模型包 其上构建的是 DAO 包 我们在 DAO 包中专门使用 Hibernate 的 XML 配置映射 我们确实不想用
  • 外键和模型继承哪个更好?

    我有这样的用例场景 有些地方是游乐场 餐馆 剧院 酒吧 相同place可以有游乐场 餐馆 剧院等 有几种实现方法 使用外键 class Place models Model name models CharField max length
  • 如何检查连接到 GRPC 服务器的客户端

    为了为我的 GRPC 服务器 客户端设置提供更好的调试信息 我正在尝试寻找一个 APIgrpc server这使我能够检查哪些客户端连接到服务器 我发现的最有希望的问题是问题 它给出了如何在 Java GRPC 中执行此操作的起点 http
  • 使用java的X509序列号

    我需要从 X509 证书获取一些数据 如果我在 Windows 中打开证书文件 它会以这种格式显示其序列号 ex 39 65 70 eb d8 9f 28 20 4e c2 a0 6b 98 48 31 0d 我试图使用 java 获取相同
  • 修复了背景附件在 Chrome 中不起作用的问题

    我尝试在 google 上寻求帮助 这似乎是 chrome 中的一个错误 但我仍然找不到解决方案 我已经查看了许多与此类似的 stackoverflow 问题 但这些解决方案仍然没有帮助 当我尝试在页面上向下滚动时 背景图像会闪烁并变得混乱
  • Matlab:bar 不存在公共属性 CData

    Matlab示例代码无法在Matlab 2017a Linux 64位 中运行 https cn mathworks com help matlab ref bar html https cn mathworks com help matl
  • 在堆栈上增长数组

    这本质上是我的问题 在函数的生命周期中 我生成一些整数 然后在也是同一函数一部分的算法中使用整数数组 整数数组仅在函数内使用 因此将数组存储在堆栈上自然是有意义的 问题是在生成所有整数之前我不知道数组的大小 我知道如何在堆栈上分配固定大小和
  • 从另一个 url 加载动态模块 - angular4

    是否可以引用模块 已以 umd 或 es 格式编译 并将其动态加载到已编译的角度应用程序中 主 shell 应用程序托管于 http plugin shell mydomain com http plugin shell mydomain