【问题标题】:angularJs orderBy not ordering array of objects based on object property valueangularJs orderBy不根据对象属性值对对象数组进行排序
【发布时间】:2016-02-25 04:13:23
【问题描述】:

我有一个接受对象的指令,并且该指令位于对象数组中包含 ng-repeat 的元素下,我想要尝试实现的是重新排序数组并根据某些对象属性传递对象(这是一个数字优先级)

<elem ng-repeat="element in array |  orderBy:'precedence ' ">
<my-directive item='element'></my-directive>
</elem>

所以我想要的是所有要传递给指令的元素必须根据优先级重新排序。

而且每个对象内部都会有一组具有相同蓝图的子对象(父对象的克隆)。

【问题讨论】:

标签: angularjs angularjs-directive angularjs-orderby


【解决方案1】:

根据文档。

<div ng-app="myApp" ng-controller="Ctrl">
    <div ng-repeat="card in myCards | orderBy:'firstName'">
        <my-directive>{{card.firstName}} {{card.lastName}}</my-directive>
    </div>
</div>

angular.module('myApp', [])
    .controller('Ctrl', function($scope) {
        $scope.myCards = [
            {firstName: 'John', lastName: 'Smith'},
            {firstName: 'Eleanor', lastName: 'Rigby'},
            {firstName: 'Maxwell', lastName: 'Hammer'},
            {firstName: 'Buzz', lastName: 'Aldrin'},
            {firstName: 'Neil', lastName: 'Armstrong'}
        ];
    });

您可以阅读here,详细了解如何创建自己的过滤器。

【讨论】:

    【解决方案2】:

    您需要添加对象来自哪个控制器,并且在指令元素中缺少角度表达式,因此可以显示任何内容。

    <my-directive> {{ your array element }} </my-directive>
    

    【讨论】:

    • 我不需要显示它们,我需要将它传递给我的指令隔离范围对它们进行一些处理并显示结果,按照你提到的工作方式显示它们,但是一旦它通过指示它失去秩序!!!我想要实现的是构建 UI 元素并基于应该显示的优先级,并且对我来说必须具有外部 ng-repeat。
    猜你喜欢
    • 1970-01-01
    • 2021-07-13
    • 2013-11-25
    • 2015-06-17
    • 2019-02-11
    • 2017-07-18
    • 2017-02-23
    • 1970-01-01
    • 2023-02-03
    相关资源
    最近更新 更多