2014-09-17 4 views
9

मेरे पास निर्देश के अंदर निम्न कोड है और मैं यह सुनिश्चित करना चाहता हूं कि दायरा नष्ट हो जाने पर यह साफ़ हो जाए। मैंने ऑनलाइन और साथ ही कोड भी देखा है और मैं सोच रहा था कि मैं तत्व को कैसे रोकूं।एक कोणीय तत्व को अनबिंड करें

var window = angular.element($window); 
window.bind("resize", function(e){ 
    abc(); 
}); 

समाधान:

var abc = function() {}; 

var window = angular.element($window); 
window.bind('resize', abc); 

scope.$on('$destroy', function(e) { 
    window.unbind('resize', abc); 
}); 
+3

क्या आपके लिए कोई काम नहीं है? – ABOS

उत्तर

4

window से समारोह अनबाइंड जब निर्देश की गुंजाइश को नष्ट कर दिया जाता है। इसलिए अपने निर्देश में, आप गुंजाइश के नष्ट की घटना पर एक साफ अप समारोह आह्वान करेंगे:

$scope.$on('$destroy', cleanUp);

एक cleanUp समारोह बनाएँ और फोन jQuery के unbind function

this SO entry में एक उदाहरण है, लेकिन off फ़ंक्शन के बजाय (जो unbind जैसा लगता है, लेकिन jqLite में अनुपलब्ध है)। इस एसओ प्रविष्टि के अनुसार, आपको अपने फ़ंक्शन का नाम देना पड़ सकता है क्योंकि आपको unbind कॉल में पैरामीटर के रूप में इसे फिर से संदर्भित करने की आवश्यकता होगी।

+2

'ऑफ' और 'ऑन' फ़ंक्शन [' jqLite'] (https://docs.angularjs.org/api/ng/function/angular.element) में उपलब्ध नहीं हैं। वे पूर्ण jQuery संस्करण में हैं। 'बाइंड' और 'अनबिंड' 'jqLite' में हैं। –

+0

आह सुधार के लिए धन्यवाद, जानना अच्छा है! मैंने कभी नहीं देखा है क्योंकि मैं कोणीय के साथ पूर्ण jQuery संस्करण का उपयोग करता हूं। – jlr

+0

तो मुझे बस बाध्य करने और फिर अनइंड करने की आवश्यकता है .. धन्यवाद, मैं इसे एक प्रयास दूंगा। –

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