在我们的数据库中,我们有一个给定的对象,用户可以拥有多个,但是1被标记为 primary 。 在我们的Angular 1应用程序中,我们列出了这些对象,但我们总是希望首先显示标记为 primary 的对象。
所以我们列出了这些对象......
<object-of-interest ng-repeat="obj in objs"></object-of-interest>
如果它是主要对象,则json形式的对象看起来像这样:
{
attr_1: value,
attr_2: value,
...
primary: true
}
或者主要属性将设置为 false 。
我想知道将主要对象移动到数组前面的最佳方法是什么?
我在网上找到的唯一方法是从数组中删除对象然后使用unshift
方法将它放在数组的前面,但这对我来说似乎是不洁净的。
感谢您的帮助!
答案 0 :(得分:1)
您可以使用orderBy
过滤器:
<object-of-interest ng-repeat="obj in objs | orderBy:'-primary'"></object-of-interest>
以下是Angular文档中改编的Plunker: http://plnkr.co/edit/T0h4JenpefWYXnul1U3J?p=preview
答案 1 :(得分:0)
有两种方法可以解决此问题,首先是在显示之前重新排序集合,这也是最正确的方法。
第二种方法是使用额外的ng-repeat和ng-show ir ng-if,这是不好的解决方案。
<object-of-interest ng-repeat="obj in objs" ng-show="obj.primary == true"></object-of-interest>
<object-of-interest ng-repeat="obj in objs" ng-show="obj.primary == false"></object-of-interest>
我建议您使用第一个解决方案,即从API接收后重新排序集合!