2015-02-05 5 views
4

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'); 

    } 
    }); 

whatever.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? или что я могу сделать, чтобы понять, что фильтр работает или нет?

+0

typo in app.js? ')]' -> '])'? – PSL

+0

Я только что удалил всю эту часть, и предупреждение еще не показывается – NietzscheProgrammer

ответ

5

Вы используете фильтр Неправильно, вы создали весь фильтр, так что вы должны использовать его непосредственно в качестве

sports | sportsFiltered 

вместо

sports | filter:sportsFiltered 

При использовании (sports | filter:sportsFiltered) он считается фильтр (встроенный фильтр) comparator, который вы можете настроить, и он просто запустит эту функцию (по области) и на основе правды/фальшивки, она решит, показывать ли этот элемент или нет. Поэтому, в конце концов, он даже не рассматривает фактический фильтр, который вы создали.

{{filter_expression | фильтр: выражение: компаратор}}

+0

отлично, потому что теперь появляется предупреждение, но что я наложу на свой '' 'вход ng-model =??' '' – NietzscheProgrammer

+0

ng-model? где это – PSL

+0

см. my whatever.html – NietzscheProgrammer

Смежные вопросы