【发布时间】:2015-04-13 14:04:03
【问题描述】:
我正在使用 ng-repeat 和 CSS 过渡移动页面中的一些元素。如果我使用unshift 更改数据数组,列表会很好地转换。 (在我的应用程序中,我正在转换位置以及不透明度。)
但是,如果我使用 shift 更新数组,则 DOM 会立即更新,而不会发生转换。
Here's a demo 的一种方法,除了转换之外,所有方法都按预期工作。比较使用两个按钮时的行为。
$scope.items.push( $scope.items.shift() );
Here's another demo 的替代方法,其中转换工作,但每次函数运行时数组都会丢失一个元素。
$scope.items.shift( $scope.items.push() );
这个想法是,用户可以在数组中的项目中无限循环,并且 CSS 转换发生在两个方向上。问题似乎是AngularJS在一种情况下更新了DOM,但在另一种情况下没有更新,尽管我无法在我的测试中证明这一点。
另外,根据我所做的一些阅读,我尝试使用 track by item.id 没有成功。非常感谢。
【问题讨论】:
标签: javascript arrays angularjs angularjs-ng-repeat css-transitions