Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 将指令导入到角度方向的组件中_Angular_Angular2 Directives_Kendo Ui Angular2 - Fatal编程技术网

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 {}