使用显示未定义的EventEmitter发出数组

时间:2018-05-14 10:08:16

标签: angular eventemitter

我正在尝试向父组件发出一个数组,但是当我尝试使用console.log获取发出的数据时,我一直未定义,我的其他事件发射器工作正常,事件二发出数组但输出时在控制台中给我未定义(只显示必要的代码)。

子组件ts文件:

@Output() eventTwo: EventEmitter<any> = new EventEmitter<any>();

// the emitting function (fillArray is the array I'm trying to send)

  sendNo () {
   this.event.emit({columns: this.height, rows: this.width});
   this.eventTwo.emit(this.fillArray);
 }

子组件html文件:

<label>Width: </label><input type="number" [(ngModel)]="height" 
(ngModelChange)="sendNo()" (ngModelChange) = "getRnd()">
<p></p>
<label>Height: </label><input type="number" [(ngModel)]="width" 
(ngModelChange)="sendNo()" (ngModelChange) = "getRnd()" >
<p></p>

父组件html文件:

<app-inputs (event)="getDataFromChild($event)" 
(eventTwo)="getDataFromChildTwo($eventTwo)"></app-inputs>

父组件ts文件:

    getDataFromChildTwo(data) {
  this.randVal = data;
  console.log(this.randVal);
 }

1 个答案:

答案 0 :(得分:0)

请更改父组件代码,如下所示:

<app-inputs (event)="getDataFromChild($event)" 
(eventTwo)="getDataFromChildTwo($event)"></app-inputs>

发出的事件应该是$event而不是$eventTwo