Angular 将指令导入到角度方向的组件中
是否可以将Angular 将指令导入到角度方向的组件中,angular,angular2-directives,kendo-ui-angular2,Angular,Angular2 Directives,Kendo Ui Angular2,是否可以将指令导入组件?我希望避免导入到ngModule.declarations 我跟在后面。建议使用customDirective填充网格,但我只需要在一个组件中使用该指令,所以我希望避免在ngModule中导入,以避免名称冲突 编辑: 我尝试了viewProviders,但它不起作用。plunkr是否有效(指令导入ngModule): 这是不起作用的plunkr。(在组件中导入的指令): 是的,这是完全可能的,您可以使用Componentdecorator的viewProviders选项,
指令
导入组件
?我希望避免导入到ngModule.declarations
我跟在后面。建议使用customDirective填充网格,但我只需要在一个组件中使用该指令,所以我希望避免在ngModule中导入,以避免名称冲突
编辑:我尝试了
viewProviders
,但它不起作用。plunkr是否有效(指令导入ngModule):
这是不起作用的plunkr。(在组件中导入的指令):
是的,这是完全可能的,您可以使用
Component
decorator的viewProviders
选项,如下所示:
@Component({
template: '<div myCustomDirective>Hello</div>',
selector: 'app-hello',
viewProviders: [MyCustomDirective]
})
export class Component {}
@组件({
模板:“你好”,
选择器:“应用程序你好”,
viewProviders:[MyCustomDirective]
})
导出类组件{}
但我要警告的是,这并不是一个真正的最佳实践,请尝试坚持使用模块。
viewProviders:[MyCustomDirective]
此指令与模板无关。现在不是指令。我们必须在@NgModule
@yurzui中声明指令,我想我理解。“这是否意味着这件事做不到呢?”ArmenVardanyan工作,但不工作。app.module.ts和app.component.ts中有更改。如果要避免名称冲突,请创建专用的@NgModule
有冲突的指令
,如果只有一个或两个组件需要,我也认为在NgModule中导入没有意义。@Fredrik Lundin在这里写下了正确的答案
@NgModule({
imports: [ BrowserModule ],
declarations: [
AppComponent,
],
bootstrap: [ AppComponent ]
})
export class AppModule { }
@Component({
moduleId: module.id,
selector: 'my-app',
templateUrl: 'app.component.html',
viewProviders: [HighlightDirective]
})
export class AppComponent {
color: string;
}
@Component({
template: '<div myCustomDirective>Hello</div>',
selector: 'app-hello',
viewProviders: [MyCustomDirective]
})
export class Component {}