以角度

时间:2017-11-23 08:27:35

标签: angular angular2-directives kendo-ui-angular2

是否可以将Directive导入Component?我想避免导入ngModule.declarations

我关注CustomDirective for Telerik Angular Grid。建议用customDirective填充网格,但我只需要在一个组件中使用该指令,所以我想避免在ngModule中导入,以避免名称冲突。

编辑:
我尝试使用viewProviders,但它不起作用。 Here是有效的plunkr(在ngModule中导入的指令):

@NgModule({
  imports: [ BrowserModule ],
  declarations: [
    AppComponent,
    HighlightDirective
  ],
  bootstrap: [ AppComponent ]
})
export class AppModule { }

here是plunkr,不起作用。 (在Component中导入的指令):

@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;
}

1 个答案:

答案 0 :(得分:1)

是的,这完全有可能,您可以使用Component装饰器的viewProviders选项,如下所示:

@Component({
   template: '<div myCustomDirective>Hello</div>',
   selector: 'app-hello',
   viewProviders: [MyCustomDirective]
})
export class Component {}

但是我应该警告,这不是一个最佳实践,而是坚持使用模块。