0
我有多個對象數組:AngularJS訂購多個對象數組,對象屬性
{
"option_12": {
"id": "0",
"name": "6 x 330ml",
"price": "0.00"
},
"option_14": {
"id": 1,
"name": "12 x 330ml",
"price": "2.00"
},
"option_17": {
"id": 1,
"name": "15 x 330ml",
"price": "4.00"
},
"option_10": {
"id": 1,
"name": "30 x 330ml",
"price": "1.00"
}
}
我使用AngularJS篩選排序依據試圖通過價格值對象進行排序。所以在這種情況下,option_12應該是第一個,option_10應該是第二個。
在控制器:
$scope.pOptions = $filter('orderBy')($scope.pOptions, 'price');
在我看來,我現在用NG選項填充選擇選項:
<select ng-model="SelectedPOption" ng-options="option.name for option in pOptions|orderBy:'price'"></select>
這些都不產生任何影響。 https://docs.angularjs.org/api/ng/filter/orderBy
感謝您的回答,我試過了一個工作的例子。首先,我沒有在控制器和視圖中使用過濾器 - 這只是爲了展示我在兩者中嘗試過的東西。我試圖在你的工作示例中操縱數據,看看它究竟發生了什麼錯誤。價格和鑰匙在引號中似乎沒有什麼區別。問題是我的對象沒有被包含在一個數組中,並且有一些名字,比如''option_10':'。這就是從API接收數據的方式 - 我如何解決這個問題? – aqq
啊我明白了。答案已更新! – fips
就像你回答我用forEach管理的那樣: $ scope.pOptions = []; ($ scope.pOptions_,function(option){ $ scope.pOptions.push(option); }); – aqq