मैं एक कोणीय कस्टम फ़िल्टर लिखने की कोशिश कर रहा हूं जो जांचता है कि क्या देशों की एक सरणी उपयोगकर्ता द्वारा दर्ज की गई खोज स्ट्रिंग है।स्ट्रिंग टुकड़े/तारों के अनुक्रमों को खोजने के लिए मैं कोणीय फ़िल्टर कैसे लिख सकता हूं
स्ट्रिंग में एक अक्षर (उदा। 'ई'), या एन-अक्षरों (जैसे 'लैन') या एक संपूर्ण शब्द (जैसे 'इंग्लैंड') का एक टुकड़ा शामिल हो सकता है।
हर मामले में, सभी देशों से युक्त है कि एक पत्र या कि टुकड़ा वापस आ जाना चाहिए, ताकि 'ई' 'इंग्लैंड', 'एस्टोनिया' आदि जबकि 'लैन' 'इंग्लैंड' वापसी होगी, 'आयरलैंड' वापसी होगी, आदि
अब तक मेरे फ़िल्टर पूरे देश या एक पत्र देता है, लेकिन मैं स्ट्रिंग टुकड़े के साथ कठिनाई हो रही हूँ:
एचटीएमएल टेम्पलेट:
<input ng-model="filter.text" type="search" placeholder="Filter..."/> <ul> <li ng-repeat="item in data | listfilter:filter.text"> </ul>
AngularJS
angular.module('sgComponents').filter('listfilter',[ function() { return function(items, searchText) { var filtered = []; angular.forEach(items, function(item) { if(item.label === searchText) { // matches whole word, e.g. 'England' filtered.push(item); } var letters = item.label.split(''); _.each(letters, function(letter) { if (letter === searchText) { // matches single letter, e.g. 'E' console.log('pushing'); filtered.push(item); } }); // code to match letter fragments, e.g. 'lan' }); return filtered; }; }]);
सही! बहुत बहुत धन्यवाद। जैसा कि आप अनुशंसा करते हैं, मुझे इसे करने की ज़रूरत है: यदि (item.label.toLowerCase()। IndexOf (searchText.toLowerCase())> = 0) filtered.push (आइटम); – Tone