Angular 2 中同一根应用程序的多个实例

2023-12-02

我们将 Angular 2 集成到旧页面中,使功能逐渐变得更加用户友好。到目前为止,将预渲染的后端小部件替换为角度模块效果非常好。

然而,我遇到了一个我不知道如何解决的问题:我编写了一个模块/组件,它可以在页面上的不同位置和不同的配置中多次出现。

  <body>
    <div class='somewhere-on-the-page'>
      <my-widget config='A'></my-widget>
    </div>
    <div class='somewhere-else-on-the-page'>
      <my-widget config='B'></my-widget>
    </div>
  </body>

这是一个笨蛋案件的。您可以看到只有第一个出现被初始化。有没有关于如何解决这个问题的概念?我认为我不能使用包装器组件,因为我无法移动其中的整个模板(页面在后端渲染,角度指令放在其中)。

Cheers


感谢 Tobias Bosch 在 github 上给出的一些指示,这是他提出的解决方法的调整版本:

import {ApplicationRef_} from '<project-root>/node_modules/@angular/core/src/application_ref'

@NgModule({
  imports: [BrowserModule],
  declarations: [MyWidgetComponent],
  entryComponents: [MyWidgetComponent]
})
class MyWidgetModule {
  constructor(injector: Injector, cfr: ComponentFactoryResolver, appRef: ApplicationRef) {
    const widgetCompFactory = cfr.resolveComponentFactory(MyWidgetComponent);
    $(widgetCompFactory.selector).each((_, el) => {
        var compRef = widgetCompFactory.create(injector, [], el);
        var upcasted = <ApplicationRef_> appRef;
        upcasted.registerChangeDetector(compRef.changeDetectorRef);
    });
  }
}

导入时要注意ApplicationRef_从角度文件。您需要直接导入它,因为默认情况下它不会在角度类型中导出。

或者你可以使用$('my-widget')(或您喜欢的任何其他选择器)来获取 DOM 引用,但我认为在组件上使用预定义选择器会更干净。

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

Angular 2 中同一根应用程序的多个实例 的相关文章

随机推荐

  • 在 SQL 中检索列信息(复合键)

    我有一个大型 SQL 数据库 我需要验证表和列的结构 而不 是数据本身 因此 我需要生成所有表的列表 然后为每个表生成其所有列 然后为每列生成其数据类型 长度 精度 序号位置以及它是否是该表主键的一部分 我可以通过以下查询获得我需要的大部分
  • 将图像保存到文档目录并检索电子邮件附件

    我无法弄清楚NSBundle DocumentDirectory数据 我有一张相机图片 图像视图 我正在保存到NSDocumentDirectoy然后想要检索它以附加到电子邮件中 这里是保存代码 IBAction saveImage NSA
  • C++ 将方法指针作为模板参数传递

    我有一个这样的调用者函数 template
  • 如何在 CentOS 6 上安装 ffmpeg

    我已经尝试安装 ffmpeg 2 天了 但没有成功 我在 youtube 上尝试了无数视频 在 google 上一步步尝试 但没有成功 任何帮助都会很棒 我有一台 Centos 6 服务器 是的 我在 mac 终端中使用 root ssh
  • PHP 格式日期

    如何强制输出日期格式 2012年12月12日 2012年1月10日 2012年1月5日 代替 12 12 2012 01 10 2012 01 05 2012 我的代码如下 adatefrom date create POST datefr
  • apache 日志中的 wkhtmltopdf 错误

    exec wkhtmltopdf test html output pdf 在 php 命令行中它可以工作 但是如果我尝试从 apache 调用它 它不会创建 pdf 文件并且日志显示 tail f var log apache2 erro
  • 标记上的语法错误、lambda 表达式的构造错误

    我在用于线程的以下代码中遇到了语法问题 btnNewButton addActionListener new ActionListener public void actionPerformed ActionEvent e new Thre
  • 友谊和继承有什么区别?

    假设有两个类A和B class A class B 下面的两个例子在哪些方面有所不同 示例1 class C public A public B 示例2 class C private friend class A friend class
  • 如何使用 pandas.Series.str.contains 搜索字符加上

    如何在 pandas 数据框列中使用 pandas Series str contains 搜索字符 我试过 df noplus df df column1 str contains case False 它给了我一个错误 File hom
  • 如何使用 python 为 ds:DigestValue、ds:SignatureValue 和 ds:X509Certificate 生成 Base64 哈希值?

    我需要生成并签署 XML 我使用的是 Windows 10 我有 PFX 格式的证书 也称为 P12 我已成功从该文件中提取密钥和证书 以便对 XML 进行签名 但现在我需要知道如何签署该 XML 更准确地说 如何生成此 XMl 元素的内容
  • JBoss AS 7:如何独立部署EJB和依赖WAR?

    我有一个带有一个 EJB 的应用程序 mwf ejb jar 和战争 mwf web war 如果我将它们打包在同一个 EAR 中 则一切正常 有没有办法先部署EJB 然后部署WAR 如果我尝试一下 我的 EJB JAR 部署得很好 但是当
  • 根据第一个和最后一个逗号分割字符串

    我想在第一个和最后一个逗号上分割字符串 每个字符串至少有两个 逗号 以下是示例数据集和所需的结果 这里有一个类似的问题询问如何在第一个逗号上拆分 在字符串中的第一个逗号处拆分 这里我问如何在前两个冒号上分割字符串 在前两个冒号上分割字符串
  • 错误 您的帐户已具有有效的 iOS 分发证书

    我见过其他存在此类错误的问题 但没有一个问题可以帮助我解决我的问题 我有我的个人苹果开发者帐户和我工作的公司的一个帐户 当我尝试为我的公司提交应用程序以对其进行 Beta 测试时 出现错误 您的帐户已经拥有有效的 iOS 分发证书 我尝试再
  • java手机通用签名工具

    谁能告诉我几乎所有java移动供应商 如三星 索尼 诺基亚 Micromax Moto等 使用的常用签名工具是什么 AFAIK Thawte Verisign and Java验证支持大多数设备 但一切都是成本 有一次我为此与 Thawte
  • Python + Django 页面重定向

    如何完成简单的重定向 例如cflocation在 ColdFusion 中 或header location http 对于 PHP 在 Django 中 这很简单 from django http import HttpResponseR
  • 寻找最佳报价组合的算法,该组合可以为给定的一组商品提供最大折扣

    我有带有 ID 的物品 1001 1002 1003 1004 1005 1006 There respective quantities are 2 5 1 1 5 2 现在我有如下数据 每行都有一个 OfferId offerId It
  • PHP 中如何将日期转换为时间戳?

    我如何从例如获取时间戳22 09 2008 此方法适用于bothWindows 和 Unixand is 时区意识到 如果你和你一起工作 这可能就是你想要的dates 如果您不关心时区 或者想使用服务器使用的时区 d DateTime cr
  • 如何使用 bookshelf-pagemaker 添加简单的Where子句

    使用书架页面制作器NodeJS 模块 https www npmjs com package bookshelf pagemaker https github com bhoriuchi bookshelf pagemaker 我能够获得基
  • 如何在Opengl中裁剪网格的这一部分?

    I tried to clip mesh in openGl and i think that i have a problem with math I have a cube 例如 我需要剪辑该立方体的一半 所以我不明白如何计算这个裁剪平
  • Angular 2 中同一根应用程序的多个实例

    我们将 Angular 2 集成到旧页面中 使功能逐渐变得更加用户友好 到目前为止 将预渲染的后端小部件替换为角度模块效果非常好 然而 我遇到了一个我不知道如何解决的问题 我编写了一个模块 组件 它可以在页面上的不同位置和不同的配置中多次出