我的Angular应用程序中有一个父/子组件,其中子组件在单击表中的行时向父组件发出事件 .
子组件配置有Output事件 Launcher ,如下所示:
@Output('rowSelect') rowSelect = new EventEmitter<any>();
onSelect($event, rowIndex) {
if ($event.source.checked) {
this.index =
rowIndex;
this.rowSelect.emit({'tenant': this.tenant, 'row': $event.source.value, 'index': this.origRowIndex.indexOf($event.source.value)});
return;
}
else {
this.rowSelect.emit({'row': {'sdwanprofile': 'UNCHECKED'}});
}
}
父组件在模板中绑定事件 Launcher ,如下所示:
<fuse-predefined>
(rowSelect) = "onButtonDisplay($event)">
</fuse-predefined>
这个工作正常,直到我升级到Angular 6.1.1
当我在父组件上的console.log来验证EventEmitter有效负载时,它不会显示任何发出的数据 . 如果我在子组件中的console.log,我可以看到有效负载 .
所以看起来Output()不会发送到父组件 .
以下是Angular包的当前版本:
Angular CLI: 6.1.2
Node: 10.7.0
OS: darwin x64
Angular: 6.1.1
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router
Package Version
------------------------------------------------------------
@angular-devkit/architect 0.7.2
@angular-devkit/build-angular 0.7.2
@angular-devkit/build-optimizer 0.7.2
@angular-devkit/build-webpack 0.7.2
@angular-devkit/core 0.7.2
@angular-devkit/schematics 0.7.2
@angular/cdk 6.4.2
@angular/cli 6.1.2
@angular/flex-layout 6.0.0-beta.17
@angular/material 6.4.2
@angular/material-moment-adapter 6.4.2
@ngtools/webpack 6.1.2
@schematics/angular 0.7.2
@schematics/update 0.7.2
rxjs 6.2.2
typescript 2.9.2
webpack 4.9.2
我检查了发行说明,看不到任何已知问题 . Angular 6.1.x上有什么东西会破坏它吗?
提前致谢 .
1 回答
这是一个简单的语法错误:
输出事件应位于开始标记内,如下所示:
不确定它是如何改变的,可能是由IDE格式化HTML代码完成的 .