当前位置: 首页 > 面试题库 >

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

贺刚毅
2023-03-14
问题内容

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

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


问题答案:

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

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。



 类似资料:
  • 我有一个简单的Spring启动应用程序,我试图添加Spring Cloud consul。Spring Cloud consul依赖于较新版本的Spring启动。在我的POM中,我为所有的Spring启动工件指定了版本。 问题是,即使为指定了1.3.5版本,它仍然下载1.2.3版本的依赖项 有没有办法让maven获取所有Spring启动工件的,包括传递依赖项?我知道我可以明确列出它们,但有没有更好

  • 我是maven的新手。(我已经搜索了几个小时的答案,但没有运气。mvn依赖:复制依赖不能解决我的问题)我需要复制项目的所有依赖项(以jar的形式),如果我的一个jar依赖于另一个工件,也复制该工件。 示例project1 pom。xml: “project1”依赖于project2。人工制品罐子当我使用“mvn依赖项:复制依赖项”时,我得到了project2。人工制品但我没有得到project3。

  • 问题内容: 我是 AngularJS的 新手, 并且喜欢到目前为止所看到的内容,尤其是模型/视图绑定。我想利用它来构建一个简单的“添加到购物篮”功能。 到目前为止,这是我的控制器: 这是我的HTML: 现在这可行,但是我高度怀疑这是在模型中创建新产品对象的正确方法。但是,这正是我完全缺乏AngularJS经验的地方。 如果不是这样做的话,什么是最佳实践? 问题答案: 您可以创建购物篮服务。通常在J

  • 问题内容: 我正在尝试使用JQuery Ajax将表单的数据传递到我的控制器方法,但是由于在Controller Side上使用调试器时ViewModel为null,因此我不确定如何执行此操作。 我的ViewModel是: 前提是我数据库中的实体/表。 该表单包含“前提”表中的字段。 在我的javascript函数中,我这样做: 但是,当我在方法中检查viewModel参数时,它为null: 关于

  • 在应用中,您希望使用不同的类来处理不同的任务以保持代码的简洁。我们把这些类称为 依赖。如何将这些依赖关系传递给将在后台任务调用的方法呢? 当您在后台任务中调用静态方法时,仅限于应用程序的静态上下文,这需要您使用以下获取依赖关系的模式: 通过 new 手动实例化依赖 服务定位器模式 抽象工厂模式 或 建设者模式 单例模式 然而,所有这些模式使您的应用程序的单元可测试性方面变得非常复杂。为了解决这个问

  • 因此,在我的Javascript中,我使用的是表单序列化,输出是正确的 (issubmit=1) 当我试图将其传递给我的控制器时,我什么也得不到,。我做错了什么? Jquery: 控制器: