javascript - 使用angularjs ng-repeat,我可以强制一个元素成为列表中的第一个吗?

标签 javascript angularjs angularjs-ng-repeat

我有一个数组,keywords,用 ng-repeat 打印:

 <li ng-repeat="keyword in keywords"> {{ keyword }} </li>  

当它按字母顺序排序时会显示,例如:

 Apples
 Cucumbers
 Daikon
 Turnip

我希望当用户搜索特定关键字时,无论列表如何排序,该关键字都会“固定”到列表的顶部。因此,如果用户搜索“Turnip”,Turnip 将排在列表的第一位,而其余的仍按字母顺序排序:

Turnip
Apples
Cucumbers
Daikon

我想知道这个功能是否可以通过 ng-repeat 实现,或者我是否需要通过在顶部插入一个额外的元素然后从数组中过滤那个元素来构造它。

最佳答案

我正在添加另一个答案,因为我认为两者都可以使用,但这个带排序的答案更圆滑!

在这里,我只是先在固定的对象上做一些 objs 数组,然后根据需要在名称值上做:

<li ng-repeat="obj in array | orderBy:['pinned','name']:reverseSort ">{{ obj.name }} [<label>Pin</label><input type="checkbox" ng-model="obj.pinned" ng-click="pinObj(obj)" />]</li>

http://plnkr.co/edit/8NGW3b?p=info

干杯

关于javascript - 使用angularjs ng-repeat,我可以强制一个元素成为列表中的第一个吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21439845/

相关文章:

javascript - 当 iframe 在 jQuery 中完成加载时,如何触发事件?

javascript - 显示选定的 ionic ListView

javascript - 应用内浏览器无法加载页面

javascript - 似乎无法在页面加载时滚动到 div 的底部(angularJS)

javascript - 当数组已满时,Ajax 发送数组

javascript - AngularJS http get 没有向 Controller 传递任何内容

javascript - 什么时候在 JS 中使用 .bind()

javascript - 我的购物车商品重复。如何增加购物车中已有的商品?

javascript - 检测 Angular JavaScript promise 链中是否存在下一个处理程序

javascript - AngularJs:选择下拉列表在使用 ng-repeat 时不显示任何选项