使用ng-repeat Angularjs进行排序

时间:2014-10-02 08:21:29

标签: javascript angularjs sorting angular-ui angular-ui-bootstrap

我有一个数组

$scope.answers=["","","",""]

表示Array有多个空元素。

<li ng-repeat="item in answers "><input type="text" ng-model="item"/></li>

它会引发错误,即ng-repeat中不允许重复值。如果我使用

<li ng-repeat="item in answers track by $index"><input type="text" ng-model="item"/></li>
然后它的工作正常。但是我希望在没有$ index跟踪的情况下使用它,以便对此进行排序也可以正常工作

任何人都可以了解这个

2 个答案:

答案 0 :(得分:0)

灵感来自this

将此添加到您的控制器(因为您无法访问HTML标记中的角度对象(范围除外)

$scope.identity = angular.identity;

然后在HTML中使用以下内容并且角度不再打扰你了:

<li ng-repeat="item in answers | orderBy : identity track by $index"><input type="text" ng-model="item"/></li>

答案 1 :(得分:0)

为什么不像这样使用数组中的对象:

$scope.answers = [{}, {}, {}, {}, {}];

然后在您的视图中使用空对象的属性。

<li ng-repeat="item in answers">
    <input type="text" ng-model="item.content"/>
</li>

您可以在以下jsFiddle中看到此操作。