我有一个包含几个项目的数组。每隔x秒,我会收到一个包含最新数据的新数组。我检查数据是否已经改变,如果有,我用旧的替换旧的:
if (currentList != responseFromHttpCall) {
currentList = responseFromHttpCall;
}
这弄乱了ng-animate提供的课程,因为它的行为就像我取代了所有项目 - 好吧,我确实做到了,但我不知道怎么做。
这些更改可以在列表中进行:
任何人都可以帮助我获取动画来理解要显示的类吗?我做了一个小小的插图"我的问题,在这里找到:http://plnkr.co/edit/TS401ra58dgJS18ydsG1?p=preview
非常感谢!
答案 0 :(得分:1)
要实现您的目标,您需要在每个操作上修改控制器(vm.list
)上的现有列表。我有一个可能适合您特定示例的解决方案。
你需要比较2个列表(循环到第一个),类似于:
vm.list.forEach((val, index)=>{
// some code to check against array that's coming from ajax call
});
如果要添加,则需要循环使用其他列表(在您的情况下为newList
):
newList.forEach((val, index)=>{
// some code to check array on controller
});
我不是说这是最好的解决方案,但它可以正常运行。请记住 - 要正确测试,您需要在每次操作后单击重置,因为您正在查看相同的全局original
列表,该列表将在整个应用周期中保留相同的数据,因为我们不会更改它 - 如果您想要改变它只是在每个函数结束前添加:
original = angular.copy(vm.list);
您也可以将此更通用并将所有内容放在一个函数上,但例如,这里是plnkr:
http://plnkr.co/edit/sr5CHji6DbiiknlgFdNm?p=preview
希望它有所帮助。