一尘不染

将jQuery依赖项传递给angular js控制器

angularjs

我正在使用angularjs 1.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
    }]);
})();

可以请一些指导我做错了什么。


阅读 193

收藏
2020-07-04

共1个答案

一尘不染

您可以在应用程序模块内创建自己的常量,然后将依赖项注入到任何需要的地方。

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

我选择了常量,因为可以将其依赖项注入angular的配置阶段。

(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。

2020-07-04