【发布时间】:2014-09-28 16:35:21
【问题描述】:
我偶然发现了这篇关于如何反转数组显示的帖子,当我尝试这样做时效果很好。 angular ng-repeat in reverse
但是...然后我列出的项目是可编辑的,当我反转数组时,$index 不会被反转,所以当我编辑列出的 1 个项目时,编辑发生在另一个包含正确索引的项目中。
那么我如何确保我的 $index 也被反转了呢?
所以代码看起来像这样
<form action="" method="post" autocomplete="off" ng-controller="itemCtrl">
<input type="text" name="createitem" ng-model="item" />
<button ng-click="addItem(item)">Add item</button>
<ul>
<li ng-repeat="item in items | reverse">
<h2>{{item.title}}</h2>
</li>
</ul>
</form>
var itemApp = angular.module('itemApp', []);
itemApp.filter('reverse', function() {
return function(items) {
return items.slice().reverse();
};
});
itemApp.controller('itemCtrl', function ($scope) {
$scope.items = [];
$scope.addItem = function(item){
$scope.items.push({
title: item
});
};
【问题讨论】:
-
根本不使用索引,而是传递数组元素本身。或者在范围内反转数组,然后对其进行迭代,而不是在数组的反转副本上进行迭代。
-
是的,这就是我一直在尝试做的。你能提供一些概念的示例代码吗?显然到目前为止我还没有成功:-/.
-
不要使用过滤器,用它来初始化作用域内的数组:
$scope.items = items.slice().reverse();。 -
这就是我试图做的。但是当我这样做时,当我编辑列表中的项目时,$index 就会混乱。
-
是的。一定是你的代码有问题。但是你没有分享它的任何一行。那么我们能提供什么帮助呢?
标签: angularjs angularjs-ng-repeat ng-repeat