栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在ng-repeat中使用'track by $ index'时,ng-animate动画错误的项目

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在ng-repeat中使用'track by $ index'时,ng-animate动画错误的项目

我认为这是正在发生的事情:由于您正在按项目的索引跟踪项目,因此每次您从列表中删除一项时,最后一个元素的索引都会发生什么变化,从而使Angular认为它是被删除的项目。当您在索引的元素旁边打印索引时,这变得很明显。看看这个修改过的jsFiddle。

一种解决方案是创建具有唯一ID的新元素,然后按这些ID进行跟踪:

Java脚本

$scope.add_layout = function(new_layout) {  new_layout = angular.copy(new_layout);  new_layout.id = new Date().getUTCMilliseconds();  $scope.chosenlist.push(new_layout);};

的HTML

<li ng-repeat="chosen in chosenlist track by chosen.id" ng-animate="'animate'">

jsFiddle 在这里。

但是,由于它创建了新元素,因此您将无法使其与原始对象保持同步,并且我不知道您是否可以接受。

我将尝试检查Angular 1.2 RC1中的新动画系统是否解决了此特定问题,如果我发现有什么问题,将更新此答案。但我不确定这样做。:(



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/386933.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号