2
私が行うことは、作成されたコンポーネントと同じコンポーネントの内部でリッスンするカスタムイベントを作成することです。角2はカスタムイベントをコンポーネント内部でリッスンします
events.component.ts
@Component({
moduleId: module.id.replace("/dist/", "/"),
selector: 'event-bind-c',
template:`
<button (click)="onClicked()">Component click</button>
<input (clicked)="showIt($event)" [placeholder]="emitted_val">
`
})
export class EventBindingComponent implements OnInit {
toggled_value:boolean = false;
emitted_val:string;
constructor() { }
ngOnInit() { }
@Output() clicked = new EventEmitter<string>();
onClicked =() => {
//alert("Inside of component");
this.clicked.emit("It works!");
}
showIt = (event_val:string) => {
alert("event_val:" + event_val);
this.emitted_val = event_val;
}
}
Iは、(親に)成分の外にそれを使用する場合、それは動作
app.component.ts
@Component({
selector: 'my-app',
template: '<event-bind-c (clicked) = "onParentClicked($event)"></event-bind-c>',
})
export class AppComponent {
onParentClicked= (value:string) => {
alert("Outside of component "+value);
}
}
私はチュートリアルを行っていましたが、同じコンポーネントの内部でカスタムイベントを聞く必要があるかどうかは分かりませんでした。私はインターネット上で見つけることができませんでした。 – sTx
私が言ったように、それはサポートされていません。 DOMイベントを意味する場合、出力からのイベントと同じ方法でバインドします。 –