तो मैं अपने आवेदन में यूआई-राउटर का उपयोग कर रहा हूं और लोडर को छिपाने के लिए लोडर और $stateChangeSuccess
दिखाने के लिए $stateChangeStart
श्रोता का उपयोग कर रहा हूं। इस तरह मेरे पास राज्य संक्रमण के बीच एक लोडर है।यूई-राउटर में राज्य परिवर्तन रद्दीकरण के बारे में कैसे सूचित किया जाए?
$rootScope.$on('$stateChangeStart',
function (event, toState, toParams, fromState, fromParams) {
///show loader
});
$rootScope.$on('$stateChangeSuccess',
function (event, toState, toParams, fromState, fromParams) {
//hide loader
});
समस्या:
- मैं राज्य एक
- मैं राज्य बी में जाने के लिए एक बटन पर क्लिक करें,
$stateChangeStart
बी के लिए कहा जाता है में हूँ, मेरे लोडर दिखाया गया है। - तुरंत मैं एक बटन पर क्लिक करें राज्य के लिए एक जाने के लिए (बी संकल्प करने के लिए कुछ सामान है, इसलिए वहाँ समय से पहले बी के यूआई वास्तव में लोड हो रहा है शुरू होता है है)
- बी लोड नहीं है, और
$stateChangeSuccess
कहा जाता है और नहीं है मेरी लोडर छिपा कभी नहीं किया गया है (जब से हम एक में पहले से ही थे, यह पुनः लोड नहीं है)
तो वहाँ एक तरह से मैं और मेरे लोडर को छिपाने स्थिति परिवर्तन रद्द के लिए सुन सकते हैं?
अद्यतन: मैंने Plunk बनाया। प्लंक में मैंने बी के संकल्प में 10 सेकंड का टाइमआउट दिया है। तो इससे पहले कि यह हल हो जाए, ए पर क्लिक करें। राज्य परिवर्तन श्रोता घटनाओं के लिए कंसोल की निगरानी करें।
अद्यतन 25 जुलाई, 2015 जो नवीनतम कोणीययूआई राउटर का उपयोग करता है: नया Plunk बनाया गया।
आप आसानी से इस लक्ष्य को हासिल कर सकते हैं अपडेट किया गया एक सेवा के अंदर स्थिति परिवर्तन जानकारी को बनाए रखने ... – harishr
@entre द्वारा लेकिन जब एक रद्द हुआ है मुझे पता नहीं होगा। –
क्या पहले Google परिणाम में कुछ गड़बड़ है - https://github.com/angular-ui/ui-router/wiki#state-change-events? –