2017-07-14 89 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

相關問題