我正在尝试在指令中进行简单的数组排序。 但不知何故,当我将嵌套数组放入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);
答案 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');