web-dev-qa-db-ja.com

EventEmitterの放出がangular 4で機能していません

これが私のコードです:

search.component.html

<button (click)="addMe()">Click</button>

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');
   }
}

profile.component.html

<search-component (userUpdated)="handleUserUpdated($event)"></search-component>

profile.component.ts

handleUserUpdated(e) {
   console.log('e', e);
}
11
Chandru

型を宣言する必要があります。文字列にする場合は@Output() userUpdated = new EventEmitter<string>();を使用し、任意の型にすることができる場合は@Output() userUpdated = new EventEmitter<any>();を使用します。

また、コンソールログを変更する必要があります。console.log("e-" + e)にスワップしてみてください

1
mast3rd3mon