加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何在Angular2中注入相同组件的新实例

发布时间:2020-12-17 17:39:29 所属栏目:安全 来源:网络整理
导读:[更新]请阅读评论历史以了解上下文. 所有: 我对angular2很新,当我按照其快速入门指南时,有一个问题让我困惑: 我将app.component.ts简化为: import { Component } from "angular2/core";@Component({ selector: "my-app",template: "div{{title}}/div"})ex
[更新]请阅读评论历史以了解上下文.

所有:

我对angular2很新,当我按照其快速入门指南时,有一个问题让我困惑:

我将app.component.ts简化为:

import { Component } from "angular2/core";
@Component({
    selector: "my-app",template: "<div>{{title}}</div>"
})
export class AppComponent {
        title = "Tour of Heroes" + Math.random();
}

我在index.html中添加了另一个my-app标记,如:

<body>
    <my-app>Loading...</my-app>
    <my-app>Loading...</my-app>
  </body>

我想知道为什么第二个不能渲染?

与此相关的另一个问题是:

如果我把两个相同组件的实例,每个都保留自己的成员变量,但如果我将服务注入一个组件,那么所有组件实例共享相同的服务实例,我发现唯一明显的差异是它们使用不同的注释(其他除此之外,它们都导出一个类:@Component和@Injectable,一个在指令数组中,另一个在providers数组中.我想知道这两个注释是否告诉angular如何处理实例或指令数组和providers数组呢?

解决方法

Angular2不允许在HTML页面中两次引导相同的组件.

但是,如果您想要在同一个HTML页面中,则可以引导不同的应用程序组件.

有关详细信息,请参阅此文档:

> https://angular.io/docs/ts/latest/api/platform/browser/bootstrap-function.html(“引导多个应用程序”部分)

编辑

关于你的第二个问题,你需要知道@Component和@Injectable是装饰器.他们负责通过基于配置的元数据在构造函数中提供权限依赖实例来“包装”目标实例并允许依赖注入.

关于分层注入器,您可以查看此链接:

> What’s the best way to inject one service into another in angular 2 (Beta)?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读