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

の同じシナリオを持っているいくつかの他の参照を使用してみてくださいあなたがそれを呼び出した場所を通過していません。 –

+0

私は、最初のパラメータ(item)が自動的に関数に渡されたと考えました。したがって、2番目のパラメータを手動で渡すだけです。 – 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> 

にあなたの項目はあなたが持っている$ scope.selectItems =関数(項目、都市){}である何 http://plnkr.co/edit/vtNjEgmpItqxX5fdwtPi?p=preview

+0

ありがとうございます!それは良い解決策のようです!しかし、それはあまり働かないようです。 ng-repeatディレクティブの後にはフィルタフィルタしか使用できないため、特定のデータの後にのみ使用できるカスタムフィルタは使用できません。 – Benson

+0

plnkr.coで私を見つけてくれてありがとう、ありがとう!はい、それは私の同じシナリオです。そして、それは私の問題を完全に解決します!どうもありがとうございました! @JEMI – Benson

関連する問題