寶慕林4294392
2019-08-30 17:01:14
我想要做的是按屬性排序一些數(shù)據(jù)。這是我應(yīng)該努力的例子,但事實(shí)并非如此。HTML部分:<div ng-app='myApp'> <div ng-controller="controller"> <ul> <li ng-repeat="(key, value) in testData | orderBy:'value.order'"> {{value.order}}. {{key}} -> {{value.name}} </li> </ul> </div></div>JS部分:var myApp = angular.module('myApp', []);myApp.controller('controller', ['$scope', function ($scope) { $scope.testData = { C: {name:"CData", order: 1}, B: {name:"BData", order: 2}, A: {name:"AData", order: 3}, }}]);結(jié)果如下:A - > ADataB - > BDataC - > CData......恕我直言應(yīng)該是這樣的:C - > CDataB - > BDataA - > AData我錯(cuò)過(guò)了什么(這里準(zhǔn)備JSFiddle進(jìn)行實(shí)驗(yàn))?
3 回答

倚天杖
TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊
這很簡(jiǎn)單,就這樣做
$scope.props = [{order:"1"},{order:"5"},{order:"2"}]
ng-repeat="prop in props | orderBy:'order'"

幕布斯6054654
TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超7個(gè)贊
不要忘記parseInt()僅適用于Integer值。要對(duì)字符串值進(jìn)行排序,您需要交換它:
array.sort(function(a, b){
a = parseInt(a[attribute]);
b = parseInt(b[attribute]);
return a - b;
});
有了這個(gè):
array.sort(function(a, b){
var alc = a[attribute].toLowerCase(),
blc = b[attribute].toLowerCase();
return alc > blc ? 1 : alc < blc ? -1 : 0;
});
添加回答
舉報(bào)
0/150
提交
取消