如何在Angular2中声明嵌套的组件
问题描述:
在Angular2 tutorial中,通过将详细组件添加到@NgModule
来引入详细组件。如何在Angular2中声明嵌套的组件
相反,我想通过以某种方式导入它的外部组件(AppComponent
)添加它,以便只有外部组件引用内部组件。
我不知道该怎么做。旧示例涉及directives
属性,但directives
不再存在于类型ComponentMetadtaType
中。所以这不起作用
import { HeroDetailComponent } from './hero-detail.component';
@Component({
selector: 'my-app',
[..]
directives: [HeroDetailComponent]
})
答
您必须添加指令和组件到模块的declarations: []
。
如果您只想让一个组件能够使用某个组件,请创建一个仅由这两个组件组成的模块。
@NgModule({
imports: [BrowserModule],
declarations: [AppComponent, FooComponent, BarDirective],
...
})
答
你应该声明它声明元,如下图所示,
import { HeroDetailComponent } from './hero-detail.component';
@NgModule({
imports: [ BrowserModule ],
declarations: [ AppComponent,HeroDetailComponent], //<----here
providers: [],
bootstrap: [ AppComponent ]
})
+2
这不是他们想要做的事情。我想声明性地导入使用内部组件的外部组件中的内部组件。 '@ NgModule'声明没有说明什么在使用什么。但也许我想要的是不可能的。 –
也许你是对的,但你基本上说,我想要做的是不可能做以我想要的方式? –
我解释了“以某种方式导入它”的样子。在Angular2 final中,您需要使用模块,并且这是使另一个组件知道一个组件,指令或管道的唯一方法。 –
@KlasMellbourn这不完全是他在说什么。确实,你不能在另一个组件中声明一个组件。所以声明应该移到一个外部模块中,这个模块仍然可以,因为其他模块/组件不会知道这个外部模块,它与您的旧外部组件声明完全一样。 – tibbus