EventEmitter发射不在角度4中工作

Cha*_*dru 10 emit angular

这是我的代码如下:

search.component.html

<button (click)="addMe()">Click</button>
Run Code Online (Sandbox Code Playgroud)

search.component.ts

import { Component, Directive, OnInit, Input, Output, EventEmitter } from '@angular/core';

@Component({
   selector: 'search-component',
   templateUrl: './search.component.html'
})

export class SearchComponent {
   @Output() userUpdated = new EventEmitter();

   addMe() {
       this.userUpdated.emit('my data to emit');
   }
}
Run Code Online (Sandbox Code Playgroud)

profile.component.html

<search-component (userUpdated)="handleUserUpdated($event)"></search-component>
Run Code Online (Sandbox Code Playgroud)

profile.component.ts

handleUserUpdated(e) {
   console.log('e', e);
}
Run Code Online (Sandbox Code Playgroud)

mas*_*mon 1

您应该需要声明一个类型。@Output() userUpdated = new EventEmitter<string>();如果您希望它是字符串或@Output() userUpdated = new EventEmitter<any>();可以是任何类型,请使用。

另外,您需要更改控制台日志,尝试切换到console.log("e-" + e)

  • 这是因为您显然不需要为 EventEmitter 声明类型,即使如果您不这样做,智能感知也会抱怨 (2认同)