我有一個Angular2應用程序,它有一個父組件(AppComponent)和多個子組件。其中一人(DnDContainer)具有@Output變量是這樣的:Angular2:我可以使用箭頭函數而不是方法處理@Output返回值嗎
@Output() onDataUpdate: EventEmitter<any> = new EventEmitter();
內DnDContainer,有一個在它的單擊事件下面的代碼按鈕:
onSave(e) {
this.onDataUpdate.emit(this.data);
// this.data is just a simple string array
}
然後,從AppComponent,有幾個DnDContainer組件(它們的選擇器是'dnd-container')。我想傾聽他們的'onDataUpdate'輸出並將其分配給不同的數組(targetItemsA,targetItemsB等)。我試圖用一個簡單的語法是這樣的:
<dnd-container (onDataUpdate)="($event) => {targetItemsA = $event}"></dnd-container>
<dnd-container (onDataUpdate)="($event) => {targetItemsB = $event}"></dnd-container>
但它不工作,所以我不得不只設定陣列到另一個創建的具體方法,如:
<dnd-container [onDataUpdate)="update('A', $event)"></dnd-container>
<dnd-container [onDataUpdate)="update('B', $event)"></dnd-container>
的方法是這樣的:
update(which, data) {
switch (which) {
case 'A':
this.targetItemsA=data;
break;
case 'B':
this.targetItemsB=data;
break;
case 'C':
this.targetItemsC=data;
break;
(ETC...)
}
}
有沒有什麼簡單的方法來做到這一點(像一個帶箭頭的功能我在開始時指出)?對不起,如果它太基本了,我對Angular2很陌生。
由於提前,
PS:在tsconfig.spec.json文件,我已經改變了「目標」屬性「ES6」,但它仍然無法正常工作。
' DND容器>' –
echonax