2015-12-21 10 views
5

मैं angularjs 1.4 का उपयोग कर रहा हूं, और मेरे कोणीय नियंत्रक में से एक में मुझे jQuery का उपयोग करना है। लेकिन जब मैं इसे निर्भरता के रूप में पारित करने की कोशिश कर रहा हूं, तो यह काम नहीं कर रहा है।कोणीय जेएस नियंत्रक के लिए jQuery निर्भरता पास करें

मैं नीचे दिए गए कोड की कोशिश की, लेकिन कोई सफलता

(function() { 
    'use strict'; 

    var app= angular.module('app'); 

    app.controller('getUserInfo', ['jQuery', 
     function($) { 
     // some logic 
    }]); 
})(); 

मैं भी नीचे दिए गए कोड की कोशिश की, लेकिन कोई सफलता

(function() { 
    'use strict'; 

    var app= angular.module('app'); 

    app.controller('getUserInfo', ['$', 
     function($) { 
     // some logic 
    }]); 
})(); 

कुछ मैं गलत क्या कर रहा हूँ मार्गदर्शन कृपया कर सकते हैं।

उत्तर

8

आप अपने ऐप मॉड्यूल & अंदर अपनी खुद की निरंतर बनाने तो आप उस निर्भरता जहां कभी आप चाहते हैं इंजेक्षन कर सकते हैं कर सकते हैं।

app.constant('jQuery', window.jQuery) 

मैंने निरंतर चुना, क्योंकि यह कोणीय के कॉन्फ़िगर चरण के अंदर अपनी निर्भरता को इंजेक्ट करने के लिए उपलब्ध होगा।

(function() { 
    'use strict'; 

    var app= angular.module('app'); 

    app.controller('getUserInfo', ['jQuery', 
     function($) { 
     // $ will provide you all jQuery method available in it. 
     //but don't do DOM manipulation from controller. 
     //controller is not the correct place to play with DOM. 
    }]); 
})(); 

लेकिन जैसा कि आप एक नियंत्रक के अंदर jQuery की निर्भरता इंजेक्ट करना चाहते थे, मैं नहीं कहूंगा। ऐसा मत करो। असल में आपको नियंत्रक से कोई भी डोम हेरफेर नहीं करना चाहिए। आप इसे निर्देश से कर सकते हैं, जिसमें डीओएम के साथ बेहतर तरीके से खेलने की क्षमता है।

4

आप Angular.js से पहले jQuery.js लोड करते हैं, तो AngularJS यह उपलब्ध angular.element के रूप में बनाने के लिए और साथ ही कोणीय विशिष्ट विधियों जोड़ देगा।

app.controller('getUserInfo', function() { 
    var $ = angular.element; 
    // some logic 
}]); 

डॉक्स से:

तो jQuery उपलब्ध है, angular.element jQuery समारोह के लिए एक उपनाम है। यदि jQuery उपलब्ध नहीं है, तो angular.element jQuery के एंगुलर के अंतर्निर्मित सबसेट में प्रतिनिधि है, जिसे "jQuery लाइट" या jqLite कहा जाता है।

अधिक जानकारी के लिए AngularJS angular.element API Reference देखें।

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