在Angular4(RC5)中嵌套组件

在Angular4(RC5)中嵌套组件,angular,deprecated,angular2-directives,angular-components,angular-rc5,Angular,Deprecated,Angular2 Directives,Angular Components,Angular Rc5,进入Angular2,看一个过时的教程,实际上是Angular2(y,我知道) 角度4: @NgModule({ imports: [ BrowserModule ], declarations: [ AppComponent , MyChildComponent ], bootstrap: [ AppComponent ] }) @Component({ selector: 'app-root', directives: [MyChildComponent] t

进入Angular2,看一个过时的教程,实际上是Angular2(y,我知道)

角度4:

@NgModule({
  imports: [ BrowserModule ],
  declarations: [ AppComponent , MyChildComponent ],
  bootstrap: [ AppComponent ]
})
@Component({
   selector: 'app-root',
   directives: [MyChildComponent]
   template: '<div><ChildComponent></ChildComponent></div>'
})
export class AppComponent {}
看起来这就是您现在嵌套组件的方式,但是否有一种方法可以按照Angular 2中的方式(或类似方式)进行嵌套?如中所示,您可以将其直接导入根组件中现在已弃用的“directives”属性中(发现这对于快速开发非常方便)

角度2:

@NgModule({
  imports: [ BrowserModule ],
  declarations: [ AppComponent , MyChildComponent ],
  bootstrap: [ AppComponent ]
})
@Component({
   selector: 'app-root',
   directives: [MyChildComponent]
   template: '<div><ChildComponent></ChildComponent></div>'
})
export class AppComponent {}
@组件({
选择器:'应用程序根',
指令:[MyChildComponent]
模板:“”
})
导出类AppComponent{}
编辑:这里是MyChildComponent声明(仍然是Angular2的一部分):

@组件({
选择器:'ChildComponent',
模板:“子组件”
})
导出类MyChildComponent{}
注意:在某些时候(我很久以前就不知道每天都会出现的不同版本)忽略了导入声明,他们切换到基于模块的设计,并在一夜之间基本上取消了
指令

为了在任何地方使用您的组件,您只需要模块中的
声明:[……]
部分填充该模块中的组件

之后,您根本不需要组件中的
指令
部分

简言之:

  • 模块的
    声明
    部分中列出的任何组件都将使该模块的所有其他组件都可以使用这些组件
  • 模块的
    导出
    部分中列出的任何组件将使那些组件可用于导入该模块的任何其他模块
在某种程度上(我很久以前就忘记了每天都会出现的不同版本),他们转向基于模块的设计,并在一夜之间基本上废除了
指令

为了在任何地方使用您的组件,您只需要模块中的
声明:[……]
部分填充该模块中的组件

之后,您根本不需要组件中的
指令
部分

简言之:

  • 模块的
    声明
    部分中列出的任何组件都将使该模块的所有其他组件都可以使用这些组件
  • 模块的
    导出
    部分中列出的任何组件将使那些组件可用于导入该模块的任何其他模块

您将其定义为组件内部的指令。如何使指令和组件具有相同的类?不同。MyChildComponent的声明不在这里。我会更新它以避免混淆。这不是一个“不起作用”的问题。只是想知道他们是否有其他东西,而不是Angular 4中的“指令”(在Angular 2中出现,现在已弃用)关键字。更新了我的问题您将其定义为组件内部的
directive
。如何使指令和组件具有相同的类?不同。MyChildComponent的声明不在这里。我会更新它以避免混淆。这不是一个“不起作用”的问题。只是想知道他们是否有其他东西,而不是Angular 4中的“指令”(在Angular 2中出现,现在已弃用)关键字。更新了我的提问方式,使它们更好地出现在那里。更易于扩展和维护。谢谢你的回答,让他们在那里更好。更易于扩展和维护。谢谢你的回答