Event handling 为什么此EventEmitter返回事件而不是字符串?

Event handling 为什么此EventEmitter返回事件而不是字符串?,event-handling,angular2-forms,angular2-services,angular2-directives,Event Handling,Angular2 Forms,Angular2 Services,Angular2 Directives,我试图在Angular2上与组件进行通信,发现使用输出装饰器是我的最佳方式,因此我遵循了文档指南,执行了完全相同的步骤。虽然当我尝试登录控制台时,我从子节点接收到的是一个事件对象,而不是它应该是的字符串 这是发出事件的子组件(TreeView组件): 我做错了什么?您似乎调用了错误的事件: 子项上的事件应为“更改”而不是“单击”,因为它是一个复选框: <input type="checkbox" name="isActive" *ngIf="node._name?.length >

我试图在Angular2上与组件进行通信,发现使用输出装饰器是我的最佳方式,因此我遵循了文档指南,执行了完全相同的步骤。虽然当我尝试登录控制台时,我从子节点接收到的是一个事件对象,而不是它应该是的字符串

这是发出事件的子组件(TreeView组件):


我做错了什么?

您似乎调用了错误的事件:

子项上的事件应为“更改”而不是“单击”,因为它是一个复选框:

<input type="checkbox" name="isActive" *ngIf="node._name?.length > 0" (change)="choose(node)">    

父级中的事件应为“onChosen”,而不是“change”

<tree-view (onChosen)=onChosen($event) [treeData]=myTree></tree-view>


我也这么认为,并尝试过,但当它发生时,事件从未被触发,也没有任何东西被记录到控制台。编辑了我的帖子。它仍然不起作用。当我点击复选框时,什么都没有发生。我只是知道发生了什么。我的树视图有很多嵌套组件,因为它是一个树,所以绑定只对第一个方法有效。我刚刚设法解决了这个问题,非常感谢您的帮助!
  onChosen(feature: string) {
    console.log(feature);
  }
<input type="checkbox" name="isActive" *ngIf="node._name?.length > 0" (change)="choose(node)">    
<tree-view (onChosen)=onChosen($event) [treeData]=myTree></tree-view>