2015-08-08 28 views
6

मैं एपीआई क्वेरी के परिणाम दिखाने के लिए md-autocomplete का उपयोग कर रहा हूं। विशेषता md-items एक वादे पर फिर से चल रहा है: item in getItems(searchText)md-autocomplete कैश को कैसे साफ़ करें?

यह अच्छी तरह से काम कर रहा है, और कैश का उपयोग उसी खोज टेक्स्ट के तुरंत उपयोग उसी परिणाम के साथ तुरंत लौट रहा है।

लेकिन मुझे कुछ बिंदुओं पर कैश साफ़ करने में सक्षम होना चाहिए, जब अन्य खोज पैरामीटर बदलते हैं। मैं यह कैसे कर सकता हूँ? शायद एमडी-स्वत: पूर्ण नियंत्रक का उपयोग करके? हालांकि यह गैर मानक लगता है और मुझे यकीन नहीं है कि कैसे।

उत्तर

6

कोणीय-सामग्री के संस्करण 1.0.5 के रूप में यह संभव नहीं है। मुझे कोई स्वीकार्य कामकाज नहीं मिला, इसलिए मैं md-no-cache="true" के साथ कैश को अक्षम कर रहा हूं।

मेरे पास कोणीय-भौतिक प्रोजेक्ट पर logged an issue for this है जिसमें यह सुझाव दे सकता है कि यह कैसे काम कर सकता है।

+0

अक्षम किया, धन्यवाद, मेरे लिए काम किया। मैं उपयोगकर्ता इनपुट के आधार पर md-autocomplete घटक में अलग-अलग सूचियां लोड कर रहा हूं और पुराने मान एक साथ संग्रहीत किए गए थे। कैश को बंद करने से सभी पुराने मूल्य जारी किए गए। –

+0

इस पर कोई खबर नहीं? – mayu

+1

मेरे द्वारा दायर किया गया मुद्दा बंद कर दिया गया था क्योंकि इसे पर्याप्त कोर नहीं माना जाता है। निराशाजनक, लेकिन मैं md-no-cache = "true" रखकर और अपनी खुद की कैशिंग परत जोड़कर इसके आसपास काम करने में सक्षम हूं। एमडी-आइटम अभिव्यक्ति एक फ़ंक्शन ले सकती है जैसे: md-items = "getItems (searchText) में आइटम"। –

2

अपने md-autocomplete निर्देश पर किसी भी समय प्रोग्रामेटिक रूप से md-no-cache विशेषता को रीसेट करना संभव है।

आप अपने नियंत्रक पर एक बूलियन चर है, तो मान लें:

$scope.noCacheResults = false; 

फिर अपने निर्देश पर आप md-no-cache विशेषता को यह चर बाध्य कर सकते हैं:

<md-autocomplete ... 
       md-no-cache="noCacheResults"> 
</md-autocomplete> 

इस तरह, जब भी आपके खोज पैरामीटर बदलते हैं आप $scope.noCacheResults को true या false पर सेट कर सकते हैं कि आप क्वेरी परिणामों को कैश करना चाहते हैं या नहीं।

+3

यह प्रश्न का उत्तर नहीं देता है। यह तब काम कर सकता है जब आप झूठे से सच हो जाते हैं लेकिन गलत के लिए सच है, यह पुराने परिणाम कैश में रखेगा। एक कामकाज के रूप में, मैंने कैश 'md-no-cache = "true" ' – Guillaume

0

कुछ ऐसा जो मेरे लिए काम करता था। अपने स्वत: पूर्ण पर एक एनजी-अगर रखें। फिर, कोड में जो इस फ़ील्ड को प्रभावित करने वाले अन्य फ़ील्ड के मान को बदलता है, उस मान को गलत पर सेट करें, और उसके बाद एक टाइमआउट के भीतर, इसे फिर से सत्य पर सेट करें। यह प्रभावी ढंग से आइटम को डीओएम से हटा देगा और इसे बिना किसी कैश के सभी अच्छे और नए रखेगा।

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