2017-07-29 42 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。发射是首选的选择。