2016-07-05 7 views
1

私の要件は、1つのドロップダウンの値に基づいて入力JSONデータをフィルタリングしなければならないということです。 「代理店」キーに「代理店1」の値を持つJSONオブジェクトのみのものです。Angular JSを使用して特定のドロップダウン値に基づいて先読みをフィルタリングする方法

私のJSONは私は1つの関数によってそのドロップダウンの値を取得し、私はthis-

のように与えている先行入力中this-

$scope.listByCategory= function(){ 

$scope.result=$scope.selectedAgency; 
} 

のようにその値を格納していますthis-

$scope.myAgencies= [ 



    { 
    "agency": "Agency1", 
    "category" : "Plan", 
    "name" : "ABC plan8", 
    "type" : "BHC Plan" 
    }, 
    { 
    "agency": "Agency1", 
    "category" : "Plan", 
    "name" : "ABC plan", 
    "type" : "PHC" 
    }, 
    { 
    "agency": "Agency2", 
    "category" : "Plan", 
    "name" : "LMN plan", 
    "type" : "CHC" 
    }, 
    { 
    "agency": "Agency2", 
    "category" : "Plan", 
    "name" : "ABC plan", 
    "type" : "BHC Plan" 
    }, 
    { 
    "agency": "Agency3", 
    "category" : "Plan", 
    "name" : "ABC plan", 
    "type" : "PHC" 
    }, 
    { 
    "agency": "Agency3", 
    "category" : "Plan", 
    "name" : "ABC quote", 
    "type" : "CHC" 
    }, 
    { 
    "agency": "Agency3", 
    "category" : "Plan", 
    "name" : "LMN Quote", 
    "type" : "PHC" 
    } 


]; 

です

<input type="text" ng-model="customSelected" id="inputTypeahead" placeholder="Custom agency" typeahead="agency.result as agency.name for agency in myAgencies | filter:$viewValue" typeahead-template-url="agencyTemplate.html" class="form-control"> 

ここでプランナーを作成しました。 https://plnkr.co/edit/HNgxjCajodFM6onsRMQH?p=preview 私の問題は、 "agency"( "agency1"のようなドロップダウン値を選んだことを意味します)の特定の値ではなく、 "agency"に基づいてフィルタリングしていることです。どのように私はそれを達成することができます誰も教えてくれる?

答えて

1

先送りのフィルタは、選択した代理店ではなく、先行入力によるフィルタリングのみです。 フィルタを次のように変更してください。

filter:{name: $viewValue, agency: selectedAgency} 

これが機能します。

更新: これは機能していますが、もう一度[すべて]を選択しても結果は表示されません。

filter:{name: $viewValue, agency: selectedAgency.length ? selectedAgency : undefined} 

は、このフィルタはselectedAgency内の文字列が空でないかどうかをチェックし、それが空の場合、未定義の機関のためのフィルタを設定しますので、それはフィルタには影響しません。この問題を修正するには、このフィルタを使用。

+0

その作業。ありがとうロンダドン! – Aanchal

+0

JSONデータを外部ファイルに格納しようとしています。その名前はagency.jsonです。次に、そのファイルからjson値を取得し、選択した機関に基づいて同様のフィルタを適用するにはどうすればよいですか? @RonDadon – Aanchal

+0

例えば$ httpサービスを使って読む必要があります。 https://docs.angularjs.org/api/ng/service/$http –

関連する問題