Angular2 EventEmitter fire to parent component

匿名 (未验证) 提交于 2019-12-03 01:20:02

问题:

I am trying to fire an Event from the child component to the parent component.

 @Component({  template:'<foo></foo>' })  export class ParentComponent{    onDoSomething($event){    //do work here    }  }  @Component({ selector:'foo' template:<button (click)="onClick($event)">MyButton</button> }) export class ChildComponent{    myEvent eventName = new EventEmitter();     onClick(button){         this.eventName.emit(button);    }   }

How do i get this to work?

回答1:

You define an EventEmitter in your child component with @Output

@Component({  selector:'foo',  template:`<button (click)="onClick($event)">MyButton</button>` }) export class ChildComponent{    @Output() myEvent = new EventEmitter();     onClick(button){         this.myEvent.emit(button);    }   }

then you "subscribe" to this event in your parent component like this:

@Component({   selector: 'my-app',   template: `Hello World <foo (myEvent)="myEvent($event)"></foo>`,   directives: [],   providers: [] }) export class AppComponent {      myEvent($event){       console.log(1, $event);     } }

Full example: http://plnkr.co/edit/MeQbC7Jbc8rprMF66aEF?p=preview



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!