Angular 6.1.1-EventEmitter不会发射到父组件

时间:2018-08-03 04:13:28

标签: angular

我在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上有什么东西会破坏它吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

这是一个简单的语法错误:

输出事件应在开始标记中,如下所示:

<fuse-predefined (rowSelect)="onButtonDisplay($event)">
</fuse-predefined>

不确定如何更改,可能是由IDE格式化HTML代码完成的。