也许这是两个问题之一。我知道你必须显式地声明要在Component for Angular 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})
]);
您可以使用'provide(PLATFORM_DIRECTIVES,{useValue:[SomeDirective,SomeComponent], multi:true})',与管道相同'bootstrap(App,[提供(PLATFORM_PIPES,{useValue:RainbowizePipe,multi:true})]);' –
谢谢澄清 – tomastrajan
- 1. AngularJS指令范围继承
- 2. AngularJS:指令模板范围继承
- 3. AngularJS遵守指令属性的表达,继承范围动态
- 4. AngularJS指令继承
- 5. AngularJS $范围继承服务
- 6. JavaScript继承范围问题
- 7. $范围的指令
- 8. ASP.NET @OutputCache指令“继承”
- 9. 在角度继承指令
- 10. 如何从父范围继承复杂的属性到我的指令的隔离范围
- 11. 红宝石 - 词法范围VS继承
- 12. 可能的继承范围问题:
- 13. AngularJS继承模式不使用范围?
- 14. ng-repeat范围问题:两级继承?
- 15. 继承时的范围规则 - C++
- 16. Python的继承和范围问题
- 17. C++继承:确定范围和成员
- 18. MIPS跳转指令范围
- 19. AngularJS隔离范围指令
- 20. 角,指令隔离范围
- 21. Angular 1.x指令范围
- 22. 指令回调和范围
- 23. 角指令范围值
- 24. 隔离范围指令:angularjs
- 25. 角指令范围为空
- 26. 角指令范围:设定
- 27. 范围和指令AngularJs
- 28. 角指令:范围VS bindToController
- 29. “范围”的指导链接功能是根范围,而不是指令范围
- 30. AngularJS中的控制器/指令继承
他们计划实施你提到的内容。 [见这个问题](https://github.com/angular/angular/issues/2844)。然而,它不断推迟,所以你必须等待。 –
我想这是一个难以解决的问题,因为模块化思想指出组件/模块没有隐式依赖关系。如果要将子组件移到其他地方,它将会中断。这通常通过继承或依赖注入来解决,这会在子组件和父组件之间建立强有力的联系,从而使您的子组件无法自行移动。 – jornare
我认为这与函数式编程有同样的意义,然后......不幸的是,这意味着我有一些工作要做;) – djvs