मुझे $compileProvider.debugInfoEnabled(false);
के साथ हमारे ऐप को संकलित करने के बाद हमारे आवेदन में एक ही समस्या का सामना करना पड़ा। मुझे बाद में हमारे कुछ निर्देशों के अलग-अलग दायरे तक पहुंचने की आवश्यकता थी, लेकिन isolateScope()
विधि का उपयोग नहीं कर सका।
this.setElementIsolateScope = function(element, scope) {
element[0].isolateScope = function() {
return scope;
};
};
तो किसी भी निर्देश जहां मैं बाद में
link()
अंदर अलग गुंजाइश मैं इस समारोह कहा जाता है उपयोग करने में सक्षम होने की जरूरत के अंदर
: समस्या को हल करने के लिए, मैं एक Utils सेवा में एक सहायक समारोह है कि इस तरह दिखता है बनाया फ़ंक्शन: चूंकि element
एक jqLite ऑब्जेक्ट है, तो आपको पर isolateScope()
फ़ंक्शन सेट करने की आवश्यकता है। आपके पास पहले से ही jqLite लिपटे element
और scope
पहले से ही आपके लिंक फ़ंक्शन में पारित होना चाहिए, जिसे आप बस अपनी सेवा विधि में पास करते हैं।
Utils.setElementIsolateScope(element, scope);
तो अलग गुंजाइश बाद में उपयोग करने के लिए, आप अपने तत्व के लिए संदर्भ मिलेगा और फिर इस (यह मानते हुए child_element
अपने तत्व/निर्देश के संदर्भ में है) है:
var child_iso_scope = _.isFunction(child_element.isolateScope) && child_element.isolateScope();
पर कैसे निर्भर करता है बस के रूप में ऊपर उसी तरह का उपयोग अलग पाने के लिए
child_element = angular.element(child_element);
और फिर: यदि आप अपने तत्व के संदर्भ में हो रही है, तो आप इस तरह यह एक jqLite आवरण रैप करने के लिए आवश्यकता हो सकती है गुंजाइश। उम्मीद है की यह मदद करेगा!