angularjs指令丢失数组格式过滤器

时间:2014-08-17 01:02:16

标签: javascript angularjs angularjs-directive angularjs-filter

我正在尝试在指令中进行简单的数组排序。 但不知何故,当我将嵌套数组放入orderBy过滤器时,它会丢失数组并成为一个对象(无法排序)

当我在指令中注销scope.item时,它说: 地址:数组[2]

但尝试过滤使用时 $ filter('orderBy')(scope.item.addresses,'distance'); 我得到“TypeError:对象不是一个函数”

(function(angular){
'use strict';
angular.module('starter').directive('getDistance', function() {
    return {
        restrict: 'E',
        replace: true,
        link: function (scope, element, $filter) {

            ;
            console.log(scope.item);

            scope.item.addresses = $filter('orderBy')(, scope.item.addresses, 'distance');

            console.log(scope.item.addresses);
        }
    };
});
})(window.angular);

1 个答案:

答案 0 :(得分:3)

您需要inject过滤指令定义,而不是在链接功能中。

angular.module('starter').directive('getDistance', function($filter) {

或者

angular.module('starter').directive('getDistance', ['$filter', function($filter) {..

并执行(删除额外的逗号,这可能是一个错字):

scope.item.addresses = $filter('orderBy')(scope.item.addresses, 'distance');