【发布时间】:2015-09-18 21:56:52
【问题描述】:
我在搞乱 Angular2,我希望能够基于引导绑定将一个组件注入另一个组件。
class HelloComponent {
name: string;
}
@Component({
selector: 'hello'
}
@View({
template: `<h3>Hello {{ name }}</h3>`
})
class HelloBobComponent extends HelloComponent {
constructor() {
this.name = 'Bob';
}
}
@Component({
selector: 'app'
}
@View({
directives: [HelloComponent]
template: `<h1>Welcome to my Angular2 app</h1>
<hello></hello>`
}
class AppComponent {
}
bootstrap(AppComponent, [
bind(HelloComponent).toClass(HelloBobComponent)
]);
这里我使用 HelloComponent 作为我希望 Angular2 的 Injector 解析 HelloBobComponent 的令牌。我这样做是为了可以根据当前的应用程序配置交换组件。上面的例子显然是行不通的。这可能使用其中一种框架装饰器吗?通过博客或来源我还没有找到答案。
编辑:澄清一下,我如何在 View 装饰器上获取指令属性以将 HelloComponent 视为 di 标记而不是类型。
【问题讨论】:
-
看看这个answer你的问题是不是有人在聊天室里问的。从那里阅读@pkozlowski 的答案。
-
感谢您为我指明这个方向。我进行了修改,发现我可以使用指令在组件中显式绑定:[bind(HelloComponent).toClass(HelloBobComponent)]。但是,这对我没有帮助,因为我想从根注入器解决,所以我不必担心在各个组件中配置绑定。
标签: dependency-injection angular