2017-07-14 92 views
0
<div ng-repeat="city in cities"> 
    <div>city: {{city}}</div> 

    <div ng-repeat="contact in contacts | filter:selectItems(city)"> 
    contact: {{contact.name}} 
    </div> 

    <hr> 
</div> 


angular.module("myApp", []) 
    .controller("MyCtrl", function ($scope) { 
    $scope.selectItems = function (item, city) { 
     return item.city === city; 
    }; 
    }); 

它不起作用。因为在滤波器过滤功能中有一个参数城市。但在这种情况下,在过滤器过滤器函数中使用参数的正确语法是什么?或者在过滤器过滤器函数中允许一个参数?在AngularJS中,如何在过滤器函数中使用参数?

+0

什么是在$ scope.selectItems =函数(项目,市)项目{}您有没有通过你称之为的项目。 –

+0

我认为第一个参数(item)是自动传递给函数的,所以我只需要手动传递第二个参数。 – Benson

+0

这是一个很好的资源:https://scotch.io/tutorials/building-custom-angularjs-filters –

回答

0

尝试使用自定义过滤器

yourmodule.filter('selectItems', function() { 
    return function (items, city) { 
    //your logic 
    }; 
}); 


<div ng-repeat="contact in contacts | selectItems:city"> 
    contact: {{contact.name}} 
    </div> 

其中有你相同的情况下其他一些参考 http://plnkr.co/edit/vtNjEgmpItqxX5fdwtPi?p=preview

+0

谢谢!这似乎是一个好方法!但它似乎不工作。因为我只能在ng-repeat指令后面使用过滤器过滤器,并且不能使用自定义过滤器,只能在特定数据后才能使用过滤器。 – Benson

+0

非常感谢您在plnkr.co上找到我的参考!是的,这与我的相同。它完美地解决了我的问题!非常感谢你! @JEMI – Benson

相关问题