我使用的是angularjs1.4,在我的角度控制器中,我必须使用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
}]);
})();有人能指点我做错了什么吗?
发布于 2015-12-21 19:29:02
您可以在应用程序模块中创建自己的常量&然后,您可以在任何时候都可以将这种依赖注入您想要的位置。
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的依赖项,我会拒绝。别干那事。基本上,您不应该从控制器中执行任何DOM操作。您可以通过指令实现这一点,该指令能够更好地处理DOM。
发布于 2015-12-21 19:42:16
如果在jQuery.js之前加载angular.js,AngularJS将使其可用为angular.element,并添加特定角度的方法。
app.controller('getUserInfo', function() {
var $ = angular.element;
// some logic
}]);来自“文件”:
如果jQuery可用,angular.element是jQuery函数的别名。如果jQuery不可用,angular.element将委托给jQuery的内置子集,称为"jQuery lite“或jqLite。
有关更多信息,请参见AngularJS angular.element API引用。
https://stackoverflow.com/questions/34402898
复制相似问题