angularjs - 为什么我的自定义过滤器不起作用?

标签 angularjs

app.js

angular.module('capilleira.clickAndGambleMobile', [
 'capilleira.clickAndGambleMobile.filters'
)]

filter.js
angular.module('capilleira.clickAndGambleMobile.filters', [])
  .filter('sportsFiltered', function() {
    return function(output) {

      return alert('I AM THE FILTER');

    }
  });

不管.html
 <!--HERE IS THE NG-MODEL-->
 <input type="text" ng-model="sportsFiltered">


<div ng-repeat="sport in sportsFilter = (sports | filter:sportsFiltered)">
  {{sport.name}}
</div>


<div ng-repeat="league in sport.leagues | filter: {leagues: [{'name':sportsFiltered}]}}">
  {{league.name}}
</div>

为什么这个过滤器不做 alert ?或者我该怎么做才能意识到过滤器是否正常工作?

最佳答案

您错误地使用了过滤器,您已经创建了一个完整的过滤器,因此您应该直接将其用作

sports | sportsFiltered

代替
sports | filter:sportsFiltered

当您使用 (sports | filter:sportsFiltered)它被认为是一个过滤器(内置过滤器)comparator您可以设置的功能,它只会运行该功能(在范围内),并根据真/假值决定是否显示该项目。所以最终它甚至不考虑您创建的实际过滤器。

{{ filter_expression | filter : expression : comparator}}

关于angularjs - 为什么我的自定义过滤器不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28353940/

相关文章:

javascript - 我如何将从 Firebase 检索的新对象数据转换为 JSON 形式,就像以前一样

angularjs - 如何更改 Angular Material 中 md 图标的颜色?

javascript - 这个新的重复拖放指令有什么问题?

angularjs - 如何使用 AngularJS 显示 "No data"消息?

javascript - Angularjs Controller 方法 arg 未定义

javascript - Ember - 嵌套 View 中的异步数据

javascript - 使用当前日期自动填充文本框

angularjs - 基于路由的Angular切换CSS类?

angularjs - 在 AngularJS 自定义验证指令中调用异步服务

angularjs - 如何使用angularjs和MVC3以相同的功能从两个不同的html文件上传中保存两个文件