我正在使用此AngularJS过滤器:https://github.com/a8m/angular-filter#groupby
我有一段数据(JSON)涉及包含点的键名,这似乎与嵌套属性有误。
有没有办法阻止过滤器解析点表示法或另一种方法来指定用于分组的字段名称?
注意:我无法改变从服务器构建数据的方式。
我的代码如下所示:
<div ng-repeat="(key, values) in items | groupBy: 'category_id.name'" >
<div class="item-row">
{{key}}
</div>
<div class="badge-row" ng-repeat="item in values">
{{item.name}}
</div>
</div>
这是我从服务器获得的JSON数据:
[
{
"id": "1",
"name": "test",
"category_id.name": "Main"
},
{
"id": "2",
"name": "foo",
"category_id.name": "Other category"
},
{
"id": "3",
"name": "bar",
"category_id.name": "Test"
}
]
在运行此代码时,目前我正在定义&#39; undefined&#39;作为关键价值。
答案 0 :(得分:3)
角度过滤器使用$parse
,因此您可以按嵌套对象中的字段排序
我有解决此问题的方法。如果它有帮助。
<强>模板强>:
(key, values) in items | groupBy: rawProperty('category_id.name')
<强>控制器强>:
$scope.rawProperty = function(key) {
return function(item) {
return item[key];
};
};
希望它有所帮助。