首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将jQuery依赖传递给角js控制器

将jQuery依赖传递给角js控制器
EN

Stack Overflow用户
提问于 2015-12-21 19:24:21
回答 2查看 6.3K关注 0票数 6

我使用的是angularjs1.4,在我的角度控制器中,我必须使用jQuery。但是,当我试图把它当作依赖来传递时,它是行不通的。

我尝试了下面的代码,但没有成功。

代码语言:javascript
复制
(function () {
    'use strict';

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

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

我也尝试了下面的代码,但没有成功。

代码语言:javascript
复制
(function () {
    'use strict';

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

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

有人能指点我做错了什么吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-21 19:29:02

您可以在应用程序模块中创建自己的常量&然后,您可以在任何时候都可以将这种依赖注入您想要的位置。

代码语言:javascript
复制
app.constant('jQuery', window.jQuery)

我选择常量,因为它可以在角的配置阶段注入它的依赖性。

代码语言:javascript
复制
(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。

票数 9
EN

Stack Overflow用户

发布于 2015-12-21 19:42:16

如果在jQuery.js之前加载angular.js,AngularJS将使其可用为angular.element,并添加特定角度的方法。

代码语言:javascript
复制
app.controller('getUserInfo', function() {
     var $ = angular.element;
     // some logic
}]);

来自“文件”:

如果jQuery可用,angular.element是jQuery函数的别名。如果jQuery不可用,angular.element将委托给jQuery的内置子集,称为"jQuery lite“或jqLite。

有关更多信息,请参见AngularJS angular.element API引用

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34402898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档