也许这是一个两个问题。我知道你必须明确声明要在Angular 2的Component中使用的指令。这会传播给子组件的组件,如果没有,是否可以使用?其次,在Component上声明的变量是否传播给子节点,还是必须将它们显式传递给Component?
答案 0 :(得分:2)
从beta.14开始,您必须明确列出@Component
' directives
数组中所有已使用的指令。对于问题的第二部分,在组件上声明的变量(例如:this.name
)不会传播到子组件。要实现这一点,您必须使用<child [item]="parentItem"></child>
之类的属性在组件模板中显式传递它们,子组件必须包含@Input item
属性。
修改强>:
要在评论中加入澄清......可以在全局注册指令,但只能在bootstrap
函数中注册。在父级上声明的指令将 NOT 由子组件继承。
bootstrap(App, [
PLATFORM_DIRECTIVES,
provide(PLATFORM_DIRECTIVES, {useValue: [SomeDirective, SomeComponent], multi:true})
]);