2016-05-06 31 views
2

我已經定義了一個函數調用login我父組件內:子組件不發光時的值父組件的功能

login(user: any) { 
    console.log(user); 
} 

然後,我有一個登錄表單組件:

export class LoginFormComponent { 
    @Output() onLogin: EventEmitter = new EventEmitter(); 

    constructor() { 
    this.user = {}; 
    } 
} 

我用像這個:

<login-form (onLogin)="login(user)"></login-form> 

看起來像這樣:

<input type="email" [(ngModel)]="user.email"> 
<input type="password" [(ngModel)]="user.password"> 

並且該組分內我有一個簡單的按鈕,其應該執行onLogin功能和從login-form部件傳遞用戶到該外部部件:

<button (click)="onLogin.emit(user)">Login</button> 

的問題是,user在總是未定義功能login

爲什麼userlogin-form發送到我的父組件?

回答

2

$event需要被用於獲取所發射的值的特殊標識符傳遞:

<login-form (onLogin)="login($event)"></login-form> 

user指組件類的user屬性。

+0

這只是愚蠢的,爲什麼呢?嗯,我想它是指的是父組件,但並不認爲它是這樣工作的。 – Chrillewoodz

+0

我更新了我的答案。不知道爲什麼你認爲它是愚蠢的。您可以引用組件的任何值或模板變量。爲了讓Angular清楚你想要傳遞事件值,而不是其他的一些參考Angular具有'$ event'標識符。 –

+1

確實,我猜這很聰明..會及時接受,cheerios :) – Chrillewoodz

相關問題