6
जब, जहां और कैसे मैं पुराने घटना श्रोताओं से छुटकारा पाने चाहिए जब नियंत्रक अब प्रासंगिक नहीं है?नियंत्रक से आवंटित घटनाओं को कैसे साफ़ करें?
दो मार्गों के साथ SPA पर विचार करें: /login
और /loggedin
app.factory('socket', ['$window', function(window) {
return window.io();
}]);
app.controller('loginController', ['socket', function (socket) {
this.tryLogin = function(credentials) {
socket.emit('login', credentials);
}
sokcet.on('loginResponse', function(data) {
if (data.status == 'OK') {
// Navigate to loggedInController
} else {
// Show error message and keep listening - user might try again
}
});
}]);
app.controller('loggedInController', ['socket', function (socket) {/* Logged in, but loginController is still listening for loginResponse */}]);
समस्याएं:
- जब
/loggedin
पर नेवीगेट करने की तोloginResponse
घटना सुनने रहता - जब
/login
पेज नया करने के लिए वापस नेविगेट श्रोता जोड़ा जाता है
अब मुझे '$ destory' घटना के साथ एक ही समस्या है, है ना? अगर मैं गलत हूं, तो मुझे सही करें, फिर भी कोणीय सीखना .. – Kristian
ओह, $ से जुड़े सभी सूचीओं के साथ $ स्कोप destorys? – Kristian
जब कोणीय में एक गुंजाइश नष्ट हो जाती है तो सभी संबंधित '$ ऑन' ईवेंट हैंडलर [इसके साथ नष्ट हो जाते हैं] (https://stackoverflow.com/a/27016855/2039244)। – sdgluck