0
私はAngular2でコンポーネントを通信しようとしていて、出力デコレータを使用することが私の場合には最良の方法であることを知ったので、ドキュメントのガイドに従っています。私が子ノードから受け取っているものをコンソールにログオンしようとすると、想定されていた文字列の代わりにEventオブジェクトになります。このEventEmitterは文字列ではなくイベントを返すのはなぜですか?
これは、イベント(TreeViewコントロールのコンポーネント)を発する子コンポーネントである:
@Component ({
selector: 'tree-view',
template: `
<ul>
<li *ngFor="let node of treeData | derp">
<input type="checkbox" name="isActive" *ngIf="node._name?.length > 0" (click)="choose(node)">
[...]
</li>
</ul>
`
})
export class TreeView implements OnInit {
@Output() onChosen = new EventEmitter<string>();
choose(feature: string) {
this.onChosen.emit(feature);
}
}
これを受けて親コンポーネントです:
<tree-view (change)=onChosen($event) [treeData]=myTree></tree-view>
そして、これは上と呼ばれていますコールバックです上記のテンプレートを含む親コンポーネント:
onChosen(feature: string) {
console.log(feature);
}
私は何をしていますか? g間違っている?
私はそう思っていましたが、試してみましたが、発生したときにイベントが発生することはなく、コンソールには何も記録されません。 –
投稿を編集しました。 – Lionel
まだ動作しません。チェックボックスをクリックしても何も起こりません。 –