iam試圖做出一個簡單的網格組件,我在發射事件後更新視圖時遇到了麻煩! 請解釋誰知道,爲什麼更新簡單的組件後,視圖不要重新渲染?這段代碼有什麼問題?angular2 @Input EventEmitter更新視圖
export class GridComponent implements OnInit {
@Input() resource: any [];
@Output() saveModel = new EventEmitter();
@Output() deleteModel = new EventEmitter();
attributes: any[];
isUpdating: boolean = false;
updatingID: number;
constructor() {}
ngOnInit() {
this.attributes = Object.keys(this.resource[0]);
}
toggleUpdate(id, flag = true) {
this.isUpdating = !this.isUpdating;
this.updatingID = flag ? id : undefined;
}
destroy(id) {
this.deleteModel.emit(id);
}
save(model) {
this.saveModel.emit(model);
this.toggleUpdate(model.id, false);
}
cancel(id) {
this.toggleUpdate(id, false);
}
}
這裏https://plnkr.co/edit/InxsHu9GwCtMplYoocsS?p=preview
預期行爲是什麼?需要採取哪些步驟來重現問題? –
我有一個對象數組,並在網格組件中,只是* ngFor指令循環此數組,第二個* ngFor循環對象與自定義管道。 GridComponent有@Output銷燬和保存。點擊更新按鈕時,數據組件將顯示帶有當前模型值的輸入,並將其與模型綁定。保存方法觸發器事件和父組件偵聽該事件,並且新數據正確傳遞,接下來我用新數組替換,但在屏幕上顯示相同的數據。我嘗試實現ngOnChanges事件並分配給this.resource = values.resource.currentValue,但未成功 –