将指令导入到 Angular 组件中

Mak*_*kla 6 angular2-directives kendo-ui-angular2 angular

可以导入DirectiveComponent?我想避免导入ngModule.declarations.

我正在遵循Telerik Angular Grid 的 CustomDirective。建议使用 customDirective 填充网格,但我只需要在一个组件中使用此指令,因此我想避免在 ngModule 中导入,以避免名称冲突。

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

@NgModule({
  imports: [ BrowserModule ],
  declarations: [
    AppComponent,
    HighlightDirective
  ],
  bootstrap: [ AppComponent ]
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)

这是 plunkr ,不起作用。(在组件中导入的指令):

@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;
}
Run Code Online (Sandbox Code Playgroud)

Arm*_*yan 3

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

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

但我应该警告这并不是一个真正的最佳实践,尝试坚持使用这些模块。