2015-06-18 15 views
11

पर आधारित कोणीय में फ़िल्टर परिणाम यह ऐसा लगता है कि यह आसान होना चाहिए लेकिन मैं कोणीय के लिए नया हूं और इस अवधारणा को बहुत अच्छी तरह समझ नहीं रहा हूं। मैं डेटासेट पर एनजी-दोहराना चलाने की उम्मीद कर रहा हूं और फिर सटीक उसी डेटासेट का उपयोग करके किसी चयनित बॉक्स में चयनित विकल्प के आधार पर परिणामों को फ़िल्टर करने में सक्षम हूं।चयन मूल्य

मैंने विकल्पों की एक सरणी बनाई है और उन्हें परिवर्तनीय $ scope.OurTeamCategories में असाइन किया है।

angular.module('app', []) 
.controller('Main', ['$scope', function($scope) { 
    $scope.ourTeamCategories = [ 
     {"id":18,"title":'Management'}, 
     {"id":19,"title":'Administration'}, 
     {"id":21,"title":'Designers'}, 
     {"id":22,"title":'Accounts'}, 
    ] 
}]); 

फिर HTML फ़ाइल में मैं गतिशील सलेक्ट बॉक्स एनजी-विकल्प और उपयोग एनजी-दोहराने का उपयोग कर इन श्रेणियों की एक सूची बनाने के लिए बनाने रहा हूँ। यह सब ठीक काम करता है, लेकिन अब मैं फिल्टर करने के लिए

<div ng-app="app"> 
    <div ng-controller="Main"> 
    <select name="show-filter" ng-model="catFilter" ng-options="category.title for category in ourTeamCategories"> 
      <option value="{{category.id}}"></option> 
     </select> 

    <li ng-repeat="cat in ourTeamCategories"> 
     <h3>{{cat.title}}</h3> 
     <!-- for testing --> 
    <b>input: {{catFilter.id}}</b> - - ID: {{cat.id}} 
    </li> 
    </div> 
</div> 

मैंने सोचा कि मैं निम्नलिखित तरीके से एक फिल्टर को चलाने के लिए सक्षम हो जाएगा सक्षम होना चाहते हैं, लेकिन मैं एक त्रुटि हो रही है। कोई मुझे बता सकता हैं मुझसे क्या गलती हो रही है?

<li ng-repeat="cat in ourTeamCategories | filter {cat.id:catFilter.value}"> 

मैं एक plunker यहाँ बना लिया है: http://plnkr.co/edit/YwHknAm3X2NUdxDeUjS8?p=preview

उत्तर

17

आपको लगता है कि और अधिक सटीक परिणाम अंत में true जोड़ने सटीक मेल सुनिश्चित करेगा बजाय & शामिल है के लिए ourTeamCategories आईडी & के माध्यम से ऊपर दिखेगा id की तरह अपने filer में प्रत्यक्ष आईडी का उल्लेख करने की जरूरत है भी पेट के :

<li ng-repeat="cat in ourTeamCategories | filter : {id: catFilter.id}: true"> 

अद्यतन

याद किया

आप ng-options जैसे ng-repeat के साथ एक ही समय में दो दृष्टिकोण जोड़ रहे हैं। मुझे लगता है कि आप ng-options साथ रहना चाहिए, ताकि अपने वर्तमान एनजी-विकल्प में जो अपने ng-model

<select name="show-filter" ng-model="catFilter" 
    ng-options="category as category.title for category in ourTeamCategories"> 
</select> 

Forked Plunkr यहाँ

+0

धन्यवाद में title मूल्य स्थापित कर रही है! मुझे लगता है कि आपके दोनों और idursun की टिप्पणियां मान्य हैं और त्रुटि दूर हो गई है। हालांकि, यह अभी भी प्रासंगिक चयन विकल्प का चयन करने पर फ़िल्टर करना नहीं चाहता है। – Starfs

+0

@Starfs मेरे अपडेट उत्तर पर एक नज़र डालें .. –

+0

मुझे वास्तव में मेरे वर्तमान चयन कोड के साथ चुनिंदा विकल्पों में अपेक्षित मान मिल रहे हैं। मूल्य 18,19,21,22 है। जब मैं आपके अपडेट को लागू करता हूं, तो चयन विकल्प मान अब 0,1,2,3 हैं जो फ़िल्टरिंग के लिए प्रासंगिक नहीं हैं जिन्हें मैं पूरा करने की कोशिश कर रहा हूं। – Starfs

2

आप filter के बाद एक कॉलन की जरूरत है। इस प्रयास करें:

filter: {cat.id:catFilter.value}

संबंधित मुद्दे