복붙노트

[ANGULAR] 지시문에서 상위 요소로 이벤트를 방출하십시오

ANGULAR

지시문에서 상위 요소로 이벤트를 방출하십시오

해결법


  1. 1.MyCustomDirective의 출력 @OUTPUT () someEvent : EventEmitter = 새 Eventemitter (); 그런 다음 사용할 수 있습니다

    MyCustomDirective의 출력 @OUTPUT () someEvent : EventEmitter = 새 Eventemitter (); 그런 다음 사용할 수 있습니다

    <div myCustomDirective (someEvent)="callSomethingOnParent($event)">HELLO</div>
    

  2. 2.@ Günterzöchbauer의 답변을 추가하고 싶습니다. 구조 지침에서 이벤트를 방출하고 지시문을 적용 할 때 별표 (*) 구문을 사용하는 경우 작동하지 않습니다. Angular 5.2.6은 * 구문과 함께 사용하는 경우 구조 지시문에 대한 @output 바인딩을 지원하지 않습니다 (GitHub 문제 참조).

    @ Günterzöchbauer의 답변을 추가하고 싶습니다. 구조 지침에서 이벤트를 방출하고 지시문을 적용 할 때 별표 (*) 구문을 사용하는 경우 작동하지 않습니다. Angular 5.2.6은 * 구문과 함께 사용하는 경우 구조 지시문에 대한 @output 바인딩을 지원하지 않습니다 (GitHub 문제 참조).

    당신은 그것을 탈취 된 형태로 변형시켜야합니다 (여기를 참조하십시오), 즉. :

    <ng-template [customDirective]="foo" (customDirectiveEvent)="handler($event)">
      <div class="name">{{hero.name}}</div>
    </ng-template>
    

    대신에:

    <div *customDirective="foo" (customDirectiveEvent)="handler($event)" class="name">{{hero.name}}</div>
    
  3. from https://stackoverflow.com/questions/37962701/emit-event-from-directive-to-parent-element by cc-by-sa and MIT license