【问题标题】:orderBy in ngRepeat using another variable propertyngRepeat 中的 orderBy 使用另一个变量属性
【发布时间】:2017-07-23 18:37:54
【问题描述】:

是否可以通过仅使用 orderBy 而不向数组中的项目添加计数属性来基于另一个变量对一个数组中的项目进行排序?

假设我在控制器中有一个数组和一个映射:

$scope.x = [{no:1,name:"a"},
    {no:2,name:"b"},
    {no:3,name:"c"}];

$scope.y = { 1: [1],
    2: [1,2,3],
    3: [1,2] };

html 将如下所示:

<div ng-repeat="i in x | orderBy: y[i.no].length">
  {{i.no}}
  {{ y[i.no] }}
  {{ y[i.no].length }}
</div>

输出:

1 [1] 1
2 [1,2,3] 3
3 [1,2] 2

但应该是:

1 [1] 1
3 [1,2] 2
2 [1,2,3] 3

【问题讨论】:

  • 答案对您有帮助吗?
  • 是的,谢谢 dev8080

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


【解决方案1】:

您可以使用谓词函数来指定您的条件。

试试这个:

<div ng-repeat="i in x | orderBy: findOrder">
    {{i.no}}
    {{ y[i.no] }}
    {{ y[i.no].length }}
</div>

还有:

$scope.findOrder = function(elem){
      console.log(elem.no);
      return $scope.y[elem.no].length;
 }

working fiddle.

【讨论】:

    猜你喜欢
    • 2017-06-07
    • 1970-01-01
    • 2014-06-01
    • 2019-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-27
    • 1970-01-01
    相关资源
    最近更新 更多