आज एक बहुत ही "डाउन-द-खरगोश-छेद" में पार हो गया कोणीय प्रश्न आज मुझे जवाब नहीं मिला। $scope
दस्तावेज़ों से, आप एक ईवेंट हैंडलर को "$destroy"
पर पंजीकृत कर सकते हैं, जिसे किसी दायरे के विनाश से ठीक पहले कहा जाता है। इस तरह, आप तो जैसे ईवेंट हैंडलर्स अपंजीकृत कर सकते हैं:
var deregister = $scope.$on('myCustomEvent', function() {
// do some crazy stuff
});
$scope.$on('$destroy', function() {
deregister();
});
हालांकि, $scope.$on('$destroy', ...)
अपनी ही हैंडलर बनाना होगा। क्या यह स्वचालित रूप से नष्ट हो गया है, या क्या आपको इसे नष्ट करने के लिए निम्न की तरह कुछ करना है?
var deregister = $scope.$on('myCustomEvent', function() {
// do some crazy stuff
});
var deregisterDestroy = $scope.$on('$destroy', function() {
deregister();
deregisterDestroy();
});
हां, यह नष्ट हो गया है - बेशक अगर यह कुछ भी हैंडलर को बाहरी रूप से संदर्भित करता है (और इस प्रकार यह सब कुछ बंद हो जाता है) तो उसे हटाया नहीं जाएगा (बस हर जगह की तरह)। –
मुझे लगता है कि फॉलो-अप प्रश्न तब होंगे (ए) क्या इसे अपनाना आवश्यक है, और (बी) यदि हां, तो क्या आप इसे ऊपर लिखने के तरीके में भी अपमानित कर सकते हैं? – jdotjdot
ना, आपके पास अनंत पुनरावृत्ति है - आपको इसे रद्द करने की आवश्यकता नहीं है, गुंजाइश नष्ट हो जाती है। मुझे यकीन है कि बहुत जल्द समय वाला कोई व्यक्ति सभ्य और विस्तृत उत्तर देगा :) –