2016-05-06 2 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.

Почему не user получает отправленный от login-form мой родительский компонент?

ответ

2

специальный идентификатор $event должен быть использован, чтобы получить значение, излучаемого прошло:

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

user относится к user свойства класса компонента.

+0

Это просто глупо, почему? Ммм, я подумал, что это относится к родительскому компоненту, но не думал, что это сработало. – Chrillewoodz

+0

Я обновил свой ответ. Не знаете, почему вы думаете, что это глупо. Вы можете ссылаться на любое значение вашего компонента или переменных шаблона. Чтобы уяснить Угловому, что вы хотите передать значение события, вместо этого какая-либо другая ссылка Угловая имеет идентификатор '$ event'. –

+1

Правда, я догадываюсь, что это довольно умный .. Примите вовремя, cheerios :) – Chrillewoodz

 Смежные вопросы

  • Нет связанных вопросов^_^