2017-07-29 45 views
0
import { Component, Input, Output, EventEmitter } from '@angular/core'; 

var colorPickerCss = "app/css/ui/color-picker.css"; 
var colorPickerTemplate = "app/partials/color-picker.html"; 

@Component({ 
    selector: 'color-picker', 
    styleUrls: [colorPickerCss], 
    templateUrl: colorPickerTemplate 

}) 
export class ColorPicker{ 
    @Input() colors: string[] = []; 
    @Output() selectedColor = new EventEmitter(); 
    isSelectorVisible : boolean = false; 

    showSelector(value: boolean){ 
     this.isSelectorVisible = value; 
    } 
    selectColor(color: string){ 
     this.showSelector(false); 
     this.selectedColor.next({color}); 
    } 


} ; 

我寫了上面的代碼,但我想了解它的功能。我的問題是,這條線上的.next()函數是什麼this.selectedColor.next({color})。它來自哪個庫?我已經提到了上面的輸入,但是我不能真正理解這個函數的實際定義。角度中的.next()函數的說明

+2

next is deprecated - see [this question](https://stackoverflow.com/questions/35840576/difference-between-eventemitter-next-and-eventemitter-emit-in-angular-2)以及那裏的答案提及[這個資源](https://github.com/angular/angular/blob/b5b6ece65a96f5b8f134ad4899b56bf84afe3ba0/modules/angular2/src/facade/async.dart#L49)如果這有助於你的理解 – 0mpurdy

回答

1

EventEmitter,擴展主題。當你使用下一個時,你會觸發一個所有用戶都會收聽的事件。見here。發射是首選的選擇。