我在Angular中使用JQuery。一切正常,除了我在JSLint中遇到错误'$' is not defined.
。我的控制器看起来像这样:
function controllerFunc($scope) {
// Stuff goes in here
};
angular.module('core').controller('controllerName', ['$scope', controllerFunc]);
我错过了什么吗?
答案 0 :(得分:4)
您可以在.js文件的顶部添加此评论:
/*global $ */
告诉JSLint $
是一个在其他文件中定义的全局,所以它可以平静下来。我发现每当我有一个依赖于jQuery的JavaScript文件时,我都需要使用它。将代码分解为多个.js文件时,同样的原则也适用,如下所示:
// foo.js
function foo() {
return 'Hello world!';
}
// bar.js
/*global foo */
function bar() {
return foo();
}
答案 1 :(得分:1)
当你使用角度时,你可能因为依赖性问题而得到这些错误,确保它已经加载到你试图使用它的jquery。 (我从来没有使用过角度但是我使用了主干,并且我使用require.js包含了我的插件,并且很多次我得到了同样的错误,因为系统上没有加载dependeces,请确保已经加载了jQuery因为你打电话给你的代码和功能)
在require.js上(我不知道你是否正在使用)我在一个部分指定了在代码执行之前需要加载的所有内容。
答案 2 :(得分:0)
首先使用var $=jQuery();
或先使用jQuery.noConflict()
,然后在代码中使用jQuery
代替$
。
var $ = jQuery();
//DO YOUR WORK HERE
或
jQuery.noConflict();
jQuery( document ).ready(function( $ ) {
...//DO YOUR WORK HERE
}