我有一个 Angular2 应用程序,它有一个父组件 (AppComponent) 和几个子组件。其中之一(DnDContainer)有一个像这样的@Output 变量:
@Output() onDataUpdate: EventEmitter<any> = new EventEmitter();
在 DnDContainer 内部,有一个按钮,其 click 事件中包含以下代码:
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 文件中,我已将 'target' 属性更改为 'es6' 但它仍然不起作用。