1

进入角和看一个过时的教程,其实是在为Angular2(Y,我知道)。嵌套组件

Angular4:

@NgModule({ 
    imports: [ BrowserModule ], 
    declarations: [ AppComponent , MyChildComponent ], 
    bootstrap: [ AppComponent ] 
}) 

看来,你这是怎么巢成分,但现在不是有没有办法在角2去做它是怎么做(或类似)?正如你可以在现在已经废弃的'directives'属性中直接导入它(直接在你的ROOT组件中)(发现这对于快速开发来说非常方便)。

Angular2:

@Component({ 
    selector: 'app-root', 
    directives: [MyChildComponent] 
    template: '<div><ChildComponent></ChildComponent></div>' 
}) 
export class AppComponent {} 

编辑:这里是MyChildComponent声明(仍然Angular2的一部分):

@Component({ 
    selector: 'ChildComponent', 
    template: '<h2>Child component</h2>' 
}) 
export class MyChildComponent {} 

注:省略进口报关

+0

你将它定义为'您的组件内部directive'。如何为指令和组件提供相同的类? – Aravind

+0

不一样。 MyChildComponent的声明不在这里。我会更新它以避免混淆。这不是一个“不能工作”的问题。在角4 –

+0

只是想知道,如果他们有什么,而不是“指示”其他(存在于角2,现在它不建议使用)的关键字更新我的问题 –

回答

0

在某些时候(我很久以前每天都会出现不同版本的错误消息),他们转而采用基于模块的设计,基本上做到了这一点与过夜的directives

为了在任何地方使用你的组件,你只需要填入该模块在你的组件模块中的declarations: [...]部分。

之后,你根本不需要的组件directives部分。

简而言之:

  • 在模块的declarations节中列出的任何组件将这些组件提供给所有其他组件模块的
  • 在模块的exports一节中列出的任何组件将使得这些组件可用于该imports该模块的任何其它模块。
+0

更好的方式让他们在那里。更容易扩展和维护。感谢你的回答 –