【问题标题】:AngularJS orderby : keep an element of array on topAngularJS orderby:将数组元素保留在顶部
【发布时间】:2014-10-26 11:34:13
【问题描述】:

我已搜索并没有找到我的问题的答案。希望,我已经很好地搜索了! 所以,这是我的问题:

<div id="{{expression.comment_id.$id}}" class="comments" ng-repeat="expression in expressions| orderBy:orderProp"

所以,orderBy 效果很好,但我有一个特定的需求: id 为 '0' 的 expression.comment_id 必须位于顶部。

如何做到这一点? 我想我必须使用个人过滤器,但我不确定这是更有效的解决方案。 如果这是一个好方法,我该如何正确实现它?

感谢您的帮助!

【问题讨论】:

  • 看看这个答案stackoverflow.com/a/25910045/949476 在您的情况下,如果comment_id === 0,您的自定义函数将返回''
  • 谢谢,我去看看。所以我没有很好地搜索:-(
  • 嗯,要表达你想要为搜索查询做什么并不容易。还要检查 Sameer Shemna 的答案。

标签: javascript angularjs angularjs-ng-repeat angularjs-orderby


【解决方案1】:

给你一个小提琴:http://jsfiddle.net/sameersemna/81q9jwg9/

基本上你必须制作一个自定义 orderBy 过滤器:

<ul ng-repeat="expression in expressions | orderBy:myValueFunction">

在控制器中:

$scope.myValueFunction = function(expression) {
        if(expression.comment_id == 0){
            return expression.comment_id;
        }else{
            return expression.orderProp;
        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-18
    • 2016-09-28
    • 2014-07-06
    相关资源
    最近更新 更多