दिलचस्प पोस्ट
पार्सिंग FtpWebRequest सूचीडिरेरीडिज़ लाइन MySQL: लोड डेटा स्थानीय INFILE सक्षम करें कैसे आईफोन क्षुधा के लिए एकाधिक थीम्स / खाल बनाने के लिए? मैं जावा में एक जेनेरिक फ़ील्ड का प्रकार कैसे निर्धारित करूं? MYSQL – तुर्की चरित्र क्या मुझे SQL सर्वर में थोड़ी फ़ील्ड को अनुक्रमणिका चाहिए? मैं stdin फ्लश करने में सक्षम नहीं हूँ पायथन में एक नियमित ग्रिड पर अनियमित रूप से अंतरित डेटा को पुन: नमूना करना मुझे अपनी बेस क्लास पद्धति तक पहुंचने के लिए "प्रयोग" करने वाले कीवर्ड का उपयोग क्यों करना चाहिए? जावा 7: पथ बनाम फ़ाइल एंड्रॉइड: मैं अपने एप से एक और ऐप कैसे खोलूं? Iostream.h कहां प्राप्त करें कैसे गिट में गिरा दिया छिपाने की जगह को ठीक करने के लिए? पायथन 3 में फ़िल्टर ट्रेलो को उपयोगकर्ता के क्लिपबोर्ड का उपयोग कैसे होता है?

ngRepeat गहरा संपत्ति द्वारा फ़िल्टर करें

यदि मेरे पास संपत्ति मूल्यों के रूप में वस्तुओं के साथ एक जटिल ऑब्जेक्ट है, तो मैं नेस्टेड गुणों में से किसी एक को कैसे फ़िल्टर कर सकता हूं?

क्या यह ओओबी एनजी-दोहराने वाले फिल्टर के साथ किया जा सकता है?

डेटा

{ Name: 'John Smith', Manager: { id: 123, Name: 'Bill Lumburg' } } 

ngRepeat

 <li ng-repeat="e in emps | filter:Manager.Name">{{ e.Name }}</li> 

वेब के समाधान से एकत्रित समाधान "ngRepeat गहरा संपत्ति द्वारा फ़िल्टर करें"

आपको इस पर फ़िल्टर करने के लिए तर्क में पास करना होगा:

 <input ng-model="filter.key"> <ul> <li ng-repeat="e in list | filter: {Manager: {Name: filter.key}}"> {{e.Name}} (Manager: {{e.Manager.Name}}) </li> </ul> 

प्लंकर पर उदाहरण

यदि आप कई गुणों को फ़िल्टर कर रहे हैं तो सिंटैक्स नीचे के समान होगा

 <ul> <li ng-repeat="item in list | {filter: top_object_property_name: value, top_object_property_with_nested_objects_name: {nested_object_property_name: value}}"> ... </li> </ul> 

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

  var employees = [name: 'John', roles: [{roleName: 'Manager'},{roleName: 'Supervisor'}]]; <li ng-repeat="staff in employees | {filter: name: 'John', roles: {roleName: 'Manager'}}"> ... </li> 

कई गहरी संपत्तियों के साथ फ़िल्टर करने के लिए हमें कस्टम फ़िल्टर बनाने की आवश्यकता है। मेरा मतलब है कि हमें ऑब्जेक्ट में डेटा को फ़िल्टर करने और आवश्यक ऑब्जेक्ट (फ़िल्टर्ड ऑब्जेक्ट) वापस करने के लिए अपना स्वयं का फ़ंक्शन बनाना होगा।

उदाहरण के लिए मुझे ऑब्जेक्ट से नीचे डेटा फ़िल्टर करना पड़ता है –

 [ { "document":{ "documentid":"1", "documenttitle":"test 1", "documentdescription":"abcdef" } }, { "document":{ "documentid":"2", "documenttitle":"dfjhkjhf", "documentdescription":"dfhjshfjdhsj" } } ] 

HTML में हम दस्तावेज़ सूची दिखाने के लिए एनजी-दोहर का उपयोग करते हैं –

 <div> //search input textbox <input ng-model="searchDocument" placeholder="Search"> </div> <div ng-repeat="document in documentList | filter: filteredDocument"> //our html code </div> 

नियंत्रक में हम वस्तु वस्तु के दो गुणों का उपयोग करके फ़िल्टर्ड ऑब्जेक्ट को वापस करने के लिए फिल्टर फ़ंक्शन लिखते हैं, जो "दस्तावेज़-शीर्षक" और "दस्तावेज विवरण" हैं, कोड उदाहरण निम्नानुसार है –

 function filterDocuments(document) { if($scope.searchDocument) { if(document.documentTitle.toLowerCase().indexOf($scope.searchDocument.toLowerCase()) !== -1 || document.document.shortDescription.toLowerCase().indexOf($scope.searchDocument.toLowerCase()) !== -1) { //returns filtered object return document } }else { return document; } } 

जहां $ scope.searchDocument स्कोप वैरिएबल है जो खोज टेक्स्टबॉक्स (HTML इनपुट टैग) से जुड़ा हुआ है, जिसमें उपयोगकर्ता खोज करने के लिए पाठ इनपुट कर सकता है।

Angularjs के नवीनतम संस्करण में नेस्टेड ओबीजेड फिल्टर को डिफ़ॉल्ट द्वारा उपयोग किया जाता है।