亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

AngularJS按屬性排序

AngularJS按屬性排序

寶慕林4294392 2019-08-30 17:01:14
我想要做的是按屬性排序一些數據。這是我應該努力的例子,但事實并非如此。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},    }}]);結果如下:A - > ADataB - > BDataC - > CData......恕我直言應該是這樣的:C - > CDataB - > BDataA - > AData我錯過了什么(這里準備JSFiddle進行實驗)?
查看完整描述

3 回答

?
倚天杖

TA貢獻1828條經驗 獲得超3個贊

這很簡單,就這樣做


$scope.props = [{order:"1"},{order:"5"},{order:"2"}]


ng-repeat="prop in props | orderBy:'order'"


查看完整回答
反對 回復 2019-08-30
?
幕布斯6054654

TA貢獻1876條經驗 獲得超7個贊

不要忘記parseInt()僅適用于Integer值。要對字符串值進行排序,您需要交換它:


array.sort(function(a, b){

  a = parseInt(a[attribute]);

  b = parseInt(b[attribute]);

  return a - b;

});

有了這個:


array.sort(function(a, b){

  var alc = a[attribute].toLowerCase(),

      blc = b[attribute].toLowerCase();

  return alc > blc ? 1 : alc < blc ? -1 : 0;

});


查看完整回答
反對 回復 2019-08-30
  • 3 回答
  • 0 關注
  • 1196 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號