2017-01-02 5 views
7

게으른로드 모듈에서 지시문을 작동시킬 수 없습니다. 나는이 문서를 읽었고, 나는 그 지시어를 내 메인 모듈의 선언 배열에 추가했다. 지시문은 해당 모듈에서 예상대로 작동하지만 지연로드 모듈에서는 작동하지 않습니다. 심지어 게으른로드 모듈 때문에 템플릿 오류로 열 수 없습니다 :지시문이 하위 모듈에서 작동하지 않습니다.

Can't bind to 'myHighlight' since it isn't a known property of 'p' 

가 여기 내 Plunker입니다. 클릭 한 후 콘솔에서

체크 아웃 오류는 지시가 AppModule에 선언되어 있기 때문이다

+0

설명서에 언급되어 있지만 기본 모듈에서와 같이 지시문을 잘 선언하지는 못했습니다 ... https://angular.io/doc s/ts/latest/guide/attribute-directives.html #! # your-directive-isn-t-working- –

+0

문제를 분명히하거나 다른 문제 일 수 있습니까? 코드에 대한 링크를 게시 할 때 문제 코드에 문제가 수반되는지 확인하십시오. –

+0

@RomanC 설명이 잘못되어 죄송합니다. 나는 그 질문을 편집했다. – omeralper

답변

17

'아이로 이동'과 거기에만 사용할 수 있습니다. 당신이 두 모듈에 지시어를 사용하려는 경우, 당신은 SharedModule를 만든 다음 거기에서 선언하고 수출 지시 한 다음 AppModuleChildModuleSharedModule을 가져올 수 있습니다

@NgModule({ 
    declarations: [ HighlightDirective ], 
    exports: [ HighlightDirective ] 
}) 

export class SharedModule {} 

지금 방금 AppModuleSharedModule를 추가해야 님 및 ChildModule 님의 가져 오기가 있습니다.

참고 : 당신은 그것을 한 번만 선언 할 수 있기 때문에 AppModule의 선언에서 지시어를 제거해야

.

+1

그러나 AppModule에서 선언 된 선언이 앱 전체에서 전역 적으로 사용 가능하지 않아야합니까? – echonax

+3

@echonax 아니요, 전 세계적으로 사용할 수있는 모든 것을 만드는 유일한 방법은 적어도 지금은 설명했습니다. –

0

프로젝트에서 비슷한 문제가 발생했습니다. 나는 shared.module했다하지만 여전히이 코드

<div class="avatar" 
    fileUploader 
    [pathForUploading]="'path'" 
    (onFileUploaded)="updateAvatar()"></div> 

했다 그리고 그것은 누군가

도움이 될 것입니다 희망

pathForUploading="path" 

에 호출 속성을 변경 한 후 사라 오류

Can't bind to 'pathForUploading' since it isn't a known property of 'div'

을 던졌다