我在Angular应用程序中有一个父级/子级组件,当单击表中的一行时,子级组件会向父级发出事件。
子组件配置了Output事件发射器,如下所示:
@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'}});
}
}
父组件按如下所示绑定事件发射器:
<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上有什么东西会破坏它吗?
谢谢。
答案 0 :(得分:1)
这是一个简单的语法错误:
输出事件应在开始标记中,如下所示:
<fuse-predefined (rowSelect)="onButtonDisplay($event)">
</fuse-predefined>
不确定如何更改,可能是由IDE格式化HTML代码完成的。