2017-09-05 4 views
5

est mon code ci-dessous:EventEmitter retransmettent ne fonctionne pas ici angulaire 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); 
} 
+0

Quelle est l'erreur? –

+0

À quoi ressemble le module? – Swoox

+1

Êtes-vous sûr que 'SearchComponent' est instancié? L'avez-vous ajouté à 'déclarations: []' –

Répondre

-2

Vous avez besoin de déclarer un type. Utilisez @Output() userUpdated = new EventEmitter<string>(); si vous voulez que ce soit une chaîne ou @Output() userUpdated = new EventEmitter<any>(); s'il peut être de n'importe quel type.

, vous devez également modifier votre journal de la console, essayez d'échanger à console.log("e-" + e)

+1

C'est exactement ce que j'aurais suggéré, je ne sais pas pourquoi vous avez voté. – SeanOlson

+2

C'est parce que vous n'avez apparemment pas besoin de déclarer un type pour l'EventEmitter, même si intellisense va se plaindre si vous ne – mast3rd3mon