AngularJS:自定义过滤器功能无法触发

时间:2014-08-08 08:48:14

标签: javascript angularjs

我有一个控制器

app.controller('cartCtrl', function($scope) {

    $scope.$on('updateCart', function(event, cart) {
        $scope.cart = cart;
    });

    $scope.myFilter = function(item) {
        console.log(item);
    };
});   

路由加载的视图:

<div class="shopping-row" data-ng-repeat="item in cart.items | filter:myFilter">
<div>

现在的问题是myFilter没有被触发。如果我调用filter:myFilter()它会被触发但值不会传递。

我不明白为什么这不起作用。任何帮助表示赞赏。

3 个答案:

答案 0 :(得分:0)

如果您使用

怎么办?
  

滤波器:myFilter(项目)

答案 1 :(得分:0)

出现错误是因为您正在尝试创建自定义过滤器但是您做错了。

这是你创建它的方式。

angular.module('phonecatFilters', []).filter('checkmark', function() {
  return function(input) {
    return input ? '\u2713' : '\u2718';
  };
});

这就是你使用它的方式。

<dd>{{phone.connectivity.infrared | checkmark}}</dd>

参考文献:https://docs.angularjs.org/tutorial/step_09

答案 2 :(得分:0)

这个问题是cart.items是一个要调用的过滤函数的数组,如果它是一个对象,它就会忽略它。 ng-repeat仍会显示该对象。