2017-11-23 9 views
0

DirectiveComponent으로 가져올 수 있습니까? ngModule.declarations으로 가져 오는 것을 피하고 싶습니다.부품을 각도로 가져 오기

다음은 CustomDirective for Telerik Angular Grid입니다. customDirective로 그리드를 채우는 것이 좋습니다. 단 하나의 구성 요소에만이 지시문이 필요하므로 이름 충돌을 피하기 위해 ngModule에서 가져 오는 것을 피하고 싶습니다.

편집 됨 :
나는 viewProviders와 시도했지만 작동하지 않습니다.

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

here이 작동하지 않는 plunkr입니다 : Here 작동 plunkr (ngModule 수입 지시어)입니다. (구성 요소에서 수입 지시어) :

@Component({ 
    template: '<div myCustomDirective>Hello</div>', 
    selector: 'app-hello', 
    viewProviders: [MyCustomDirective] 
}) 
export class 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; 
} 
+0

이름 충돌을 피하려면 전용'@ NgModule'을 만드십시오. https://angular.io/guide/ngmodule#feature-modules'충돌하는 지시문이 있습니다 .' – yurzui

+0

NgModule에서만 가져 오기에 아무런 의미가 없습니다. 하나 또는 두 개의 구성 요소가 필요합니다. – Makla

+0

@Fredrik Lundin이 바로 대답을 썼습니다. – yurzui

답변

1

예,이 전적으로 가능하며,이 같은 Component 장식의 viewProviders 옵션을 사용할 수 있습니다 , 모듈을 고집하는 trty.

+0

아, 잘 잡으세요! –

+0

나는 나를 위해 일하지 않는다. – Makla

+0

'작동하지 않음'이란 무엇을 의미합니까? 제발, 세부 사항을 제공하십시오. –