मेरे पास एक AngularJS ऐप है जो ui.router और प्लगइन ui.router-extras, विशेष रूप से चिपचिपा-राज्य मॉड्यूल का उपयोग कर रहा है। यह मुझे दिए गए माता-पिता राज्य से नीचे दिए गए डीओएम को कैश करने की अनुमति देता है।एक चिपचिपा राज्य में ui.router संक्रमण पर किस घटना को निकाल दिया जा सकता है?
समस्या यह है कि जब मैं किसी ऐसे राज्य में संक्रमण करता हूं जिसे मैंने 'चिपचिपा' (यानी कैश किया गया) के रूप में सेट किया है, तो उस राज्य की आग से जुड़ी कोई भी घटना नहीं है। ऑनएन्टर और रिसोलव दोनों पहले से ही चल चुके हैं और कैश किए गए हैं, ऐसा लगता है।
states.push({ name: 'root.planner', url: 'planner',
abstract: true,
views: {
'planner-tab': {
controller: 'planner',
templateUrl: 'views/planner/_planner.html'
}
},
sticky:true,
deepStateRedirect: true
});
states.push({ name: 'root.planner.home', url: '',
controller: 'planner.home',
templateUrl: 'views/planner/_planner.home.html',
resolve: {
'promiseDays': function(PlannerService){
return PlannerService.getDays();
}
},
onEnter: function(StatusService){
//set editable
StatusService.toggleEditIcon(true);
},
onExit: function(StatusService){
//set editable
StatusService.toggleEditIcon(false);
}
});
मुझे ऑनएंटर चलाने या कुछ समान घटनाओं को प्रत्येक राज्य के अनुरूप बनाया जा सकता है। आदर्श रूप से, यह ऊपर राज्य कॉन्फ़िगरेशन के अंदर होगा (इसलिए मैं प्रत्येक राज्यChangeSuccess पर राज्य-नाम जांच करने से बच सकता हूं), लेकिन मैं सुझावों के लिए खुला हूं।
हार्डकोडेड जिथब फ़ाइल के बजाय रेपो में खोज करने के लिए लिंक: https://github.com/christopherthielen/ui-router-extras/search?utf8=%E2%9C%93&q=on –
पुनः सक्रिय करें, @ माइकल। अच्छी जगह। – Astravagrant