放下一个项目时,我希望能够执行返回true或false的异步调用(例如,与后端检查是否存在冲突,冲突等)。如果为false,我想“反转”该放置,以便该项目出现在原始数组中。
我在官方文档中找不到任何引用,因此希望对如何解决这一挑战提供任何指导。
答案 0 :(得分:1)
对于其他需要此方法的人,这是一种方法。如果能以某种方式告诉该动作在还原之前等待结果,那将是很好的选择,但是我不知道该怎么做。
try{
//Move the value first
transferArrayItem(event.previousContainer.data,
event.container.data,
event.previousIndex,
event.currentIndex);
//Wait for the result and then roll back the change if required
this.openEdit(event.previousContainer.data[event.previousIndex]).subscribe((result:Updated) =>
{
if(result?.success !== 1){
transferArrayItem(event.container.data,
event.previousContainer.data,
event.currentIndex,
event.previousIndex);
}
});
}
答案 1 :(得分:0)
按照@Jim提出的想法,可能的解决方案可以简单地进行更改并异步检查操作的状态(如果可以):完成,否则还原更改,以下解决方案也可以使用{{ 1}}
changeDetection: ChangeDetectionStrategy.OnPush