2014-10-28 15 views
5

के लिए मैं AngularJS में फिल्टर निम्नलिखित है:AngularJS: उपयोग सरणी (एक से अधिक मान) एक फिल्टर

<div ng-repeat="node in data | filter:{parentID:12}"></div> 

यह ठीक काम करता है (मैं केवल डेटा मिलता है, जहां parentID 12) है।

अगले चरण में, मैं (अपने काम नहीं कर रहा) सभी डेटा, जहां parentID (उदाहरण के लिए) 12,13,25 या 30

मैं निम्नलिखित की कोशिश की है प्राप्त करना चाहते हैं:

filter:{parentID:[12,13,25,30]} 

क्या फ़िल्टर के रूप में वर्णित करने का कोई तरीका है?

बहुत बहुत धन्यवाद!

+0

संभव डुप्लिकेट (http [AngularJS में एक से अधिक मान (या आपरेशन) को कैसे फ़िल्टर करें]: //stackoverflow.com/questions/15868248/how-to-filter-multiple-values-or-operation-in-angularjs) –

उत्तर

6

एक अनुमानित कार्य आपकी आवश्यकताओं को अच्छी तरह से अनुरूप करेगा! से doc:

function(value, index): A predicate function can be used to write arbitrary 
filters. The function is called for each element of array. The final result 
is an array of those elements that the predicate returned true for. 

उदाहरण के लिए:

<div ng-repeat="node in data | filter:checkParentID"></div> 

और अपने नियंत्रक में

$scope.checkParentID = function(value, index) { 
    return value.parentID && [12,13,25,30].indexOf(value.parentID) !== -1; 
} 
की
+0

@ ट्रीम ओप्स, मैंने सब कुछ उलझन में डाल दिया। फिल्टर फ़िल्टर की तरह दिखना चाहिए: parentFilter। कृपया morloch के जवाब को स्वीकार करें, क्योंकि यह सही है और मेरा नहीं है। – dfsq

+0

सुनिश्चित नहीं है, आपने क्या किया - मेरे लिए काम करता है। लेकिन ठीक है, मैंने उसका जवाब स्वीकार कर लिया। धन्यवाद और मेरी मदद करने के लिए morloch! :) – Tream

+0

मैं थोड़ा गड़बड़ कर दिया। यह जवाब बेहतर है :) आपका स्वागत है! – dfsq

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