我正在尝试为orderBy
用户ng-repeat
。但是,我想在列表顶部添加一个额外的项目。
Catogary
AItem
BItem
CItem
DItem
在我获得项目列表后,类别被添加到列表中。我不希望过滤类别并成为
AItem
BItem
Catogary
CItem
DItem
我的重复
<div ng-repeat=“item in items | orderBy:’title’”>
</div>
我该如何解决这个问题?谢谢!
示例数据
$scope.items = [
{id: ‘aaa’,
title: ‘AItem’,
type:’picture’
},
{id: ‘bbb’,
title: ‘BItem’,
type:’toy’
},
{id: ‘ccc’,
title: ‘CItem’,
type:’food’
}
]
答案 0 :(得分:1)
您可以对控制器中的列表进行排序,然后将Catogary(Category ???)项添加到数组中,然后将其绑定到视图
答案 1 :(得分:1)
尝试自行显示类别。 首先过滤掉类别然后排序。
<div ng-repeat=“item in items | filter:{title:'Catogary'}”>
<!-- display the catogary-item -->
</div>
<div ng-repeat=“item in items | filter:{title:'!Catogary'} | orderBy:'title'”>
<!-- display other items -->
</div>
实际上不应该这样做。您应该考虑一下您的数据结构。
答案 2 :(得分:1)
以下是一名说明奥斯汀要做的事并解决问题的傻瓜http://plnkr.co/edit/nkixXUlTXYvwlB388jlA?p=info。
你的控制器基本上就是这个。
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($filter) {
var vm = this;
var data = [{
id: 'aaa',
title: 'AItem',
type: 'picture'
},
{
id: 'ddd',
title: 'DItem',
type: 'test'
},
{
id: 'bbb',
title: 'BItem',
type: 'toy'
}, {
id: 'ccc',
title: 'CItem',
type: 'food'
}];
vm.items = $filter('orderBy')(data,'title');
vm.items.unshift({
id: 'something',
title: 'Catogary',
type: 'idk'
});
});