Javascript 如何在ng中对数据进行排序,并将嵌套对象作为JSON数据在angular js中重复
我想在角度视图中显示对象属性的数组。以下是对象Javascript 如何在ng中对数据进行排序,并将嵌套对象作为JSON数据在angular js中重复,javascript,angularjs,sorting,Javascript,Angularjs,Sorting,我想在角度视图中显示对象属性的数组。以下是对象 $scope._Json = { "foo": { "ItemDimension1": { "Item": "item1", "ItemIndex": 1, "SelectedItems": [{ "Code": "Code1" }] } }, "bar": {
$scope._Json = {
"foo": {
"ItemDimension1": {
"Item": "item1",
"ItemIndex": 1,
"SelectedItems": [{
"Code": "Code1"
}]
}
},
"bar": {
"ItemDimension2": {
"Item": "item2",
"ItemIndex": 3,
"SelectedItems": [{
"Code": "code2"
}]
},
"ItemDimension3": {
"Item": "item3",
"ItemIndex": 2,
"SelectedItems": [{
"Code": "Code3"
}]
}
},
"Lorem": {
"ItemDimension4": {
"Item": "item4",
"ItemIndex": 5,
"SelectedItems": [{
"Code": "Code4"
}]
}
}
};
我想在视图中显示这一点,就像
项目1-1
项目3-2
项目2-3
项目4-5
但它显示出
项目4-5
项目2-3
项目3-2
项目1-1
视图模板
<label ng-repeat="(catagory, items) in _Json">
<li ng-repeat="(name, itemslist) in items | orderBy:'itemslist.ItemIndex'">
<strong>{{itemslist.Item }}</strong> - <strong>{{itemslist.ItemIndex }}</strong>
</li>
</label>
{{itemslist.Item}-{{itemslist.itemsindex}
如何使用ItemIndex订购此产品
这是正确的方法吗?还是我想改变什么
关于,我尝试了orderByobject,但没有成功
检查这个Plunker源
这应该可以做到:
<label ng-repeat="(catagory, items) in _Json">
<li ng-repeat="(name, itemslist) in items | orderBy:'itemslist.ItemIndex':true">
<strong>{{itemslist.Item }}</strong> - <strong>{{itemslist.ItemIndex }}</strong>
</li>
</label>
{{itemslist.Item}-{{itemslist.itemsindex}
请参见您需要
ng repeat
的参数作为实际数组,以便内置orderBy工作。见这个问题:
我会插入下划线.js(或lodash)并预先转换您的数据
看到你的最新小提琴了吗
将映射添加到您的控制器(注意,为了简单起见,这是顶级映射,对于两级映射,请参考更新的fiddle)
并将标记更改为(同样,为了简单起见,此处仅为顶级,两级更新请参考更新的plnkr):
{{itemslist.Item}-{{itemslist.itemsindex}
您是否尝试过:在orderBy
过滤器中反转?@Brett我尝试过,但没有成功!请检查此plunker链接,您的plunker示例根本不适用于我。@Brett适用于我。item4-5 item2-3 item3-2 item1-1作为结果,我们的JSON数据不是一个数组,但是,你却把它当作一个数组来对待。糟糕的是,我没有注意到。你应该检查,或者,你应该能够让它工作。
$scope._Json = _.map($scope._Json, function( v, k) {
return { key: k, value: v}
})
<label ng-repeat="cat in _Json">
<li ng-repeat="(name, itemslist) in cat.value | orderBy:'itemslist.ItemIndex'">
<strong>{{itemslist.Item }}</strong> - <strong>{{itemslist.ItemIndex }}</strong>
</li>
</label>