मेरे एप्लिकेशन के कई हिस्सों में एक बहुत ही आम विशेषता एक खोज बॉक्स है जो एक स्ट्रिंग स्वीकार करता है और फिर स्ट्रिंग के आधार पर एक तालिका फ़िल्टर करता है।angularJs में एक खोज टेक्स्ट बॉक्स प्रोग्राम करने का सही तरीका
मैं जो लक्ष्य रख रहा हूं वह है कि उपयोगकर्ता कुछ समय के लिए स्वचालित रूप से टाइप करने की अनुमति देता है और परिणामस्वरूप खुद को अद्यतन करने में कुछ देर हो जाता है। मुझे प्रवेश बटन को हिट करने की आवश्यकता नहीं है।
डेटा के सॉर्टिंग को AngularJs फ़िल्टर का उपयोग करके किया जाएगा। हालांकि फ़िल्टर को अपडेट करने से पहले मुझे विश्वास है कि हमें पहले यह समझना होगा कि उपयोगकर्ता इनपुट में प्रवेश कर चुका है और अब परिणामों की प्रतीक्षा कर रहा है।
तो मैंने निर्देश को मैप किया जो खोज इनपुट बॉक्स से जुड़ा होगा।
<input type="text" update-filter placeholder="Enter search term">
//and the directive goes like this
app.directive('updateFilter', [ '$timeout', function($timeout){
var delay;
return {
link: function(scope, element){
element.on('keypress', function(){
if(!delay) {
delay = $timeout(function() {
//perform the activity of updating the filter here
delay = undefined;
},50);
}
}
}
}
});
मेरा सवाल यह है कि क्या इस मुद्दे से निपटने के लिए यह सही दृष्टिकोण है या वहां बेहतर समाधान हैं?
यह केवल तभी काम करता है जब ग्राहक के पास सभी डेटा हो। – CodesInChaos
@CodesInChaos - सच है, यह केवल उस डेटा को फ़िल्टर करता है जो ऐप में लोड होता है। –