對象的ID我想他的特定對象「ID」命令對象的ng-repeat
的結果。這個命令是在一個數組所以我做了這個自定義過濾器ng-repeat="line in dataObject|objectIdFilter:orderByArray"
:AngularJs NG-重複ORDERBY在陣列
.filter('objectIdFilter', [function() {
return function(inputObjet, orderArray) {
var result = [];
angular.forEach(orderArray, function(value) {
result.push(inputObjet[value]);
});
console.log(result);
return result;
}
}])
而這與對象的例子基本控制器和訂單ID在數組中:
.controller('MainCtrl', ['$scope', function($scope) {
$scope.dataObject = {
1: {username:'user1'},
10: {username:'user10'},
20: {username:'user20'},
500: {username:'user500'}
};
$scope.orderByArray = [20,10,1,500];
}])
隨着他的HTML:
<div ng-app="myApp">
<div ng-controller="MainCtrl">
<div ng-repeat="line in dataObject|objectIdFilter:orderByArray">{{line.username}}</div>
</div>
</div>
的jsfiddle:https://jsfiddle.net/infnadanada/tLrx4uro/
所以...
所有好的工作,但我不知道是否有另一種方式來訂購NG重複像我一樣不使用自定義過濾器。
,以及如果你去的jsfiddle在瀏覽器控制檯,您可以看到我的自定義過濾器是如何恢復2倍的結果,我不知道爲什麼。
PD:英語不是我的第一語言:d
感謝
請參閱您的第二個問題 http://stackoverflow.com/questions/9682092/databinding-in-angularjs – intekhab
@intekhab是用於數據綁定的問題? '應用'的'diggest'是..?所以這是一個本地問題?我能做些什麼來解決這個問題嗎? – nada
我會在控制器做同樣作爲過濾器創建js函數「objectIdFilter」確實,一旦調用它,因爲過濾器獲取調用每次你做的東西收集時間。 –