我在我的范围内有一个对象列表,并且想要遍历它们,以按某些属性排序的方式显示它们的一些属性并更改它们。
ng-repeat 用于显示绑定到我的列表的每个对象的文本框,并应用了将“位置”作为参数的 orderby 过滤器。
再一次,位置也是可编辑的!
现在我们改变某个对象的位置一次(角度按预期重新排序列表)然后改变两次。Angular 不会重新排序列表。
谁能解释如何解决这种仅重新订购一次的情况以及这种行为的原因是什么?
这是小提琴:JSFiddle
HTML
<div ng-controller="MyCtrl">
<p>List of activities:</p>
<div ng-repeat="activity in model.activities | orderBy: 'position'">
<textarea type="text" ng-model="activity.name">
</textarea>
{{activity.name}}
<input type="text" ng-model="activity.position">
</div>
</div>
JS
var myApp = angular.module('myApp',[]);
function MyCtrl($scope) {
$scope.model = {
activities: [
{name: "activity 1", position: 1},
{name: "activity 2", position: 2},
{name: "activity 3", position: 3},
{name: "activity 4", position: 4},
{name: "activity 5", position: 5}
]
};
}