我有一个带有RequireJS和JSHint的AngularJS应用程序。我有一个控制器MyCtrl
:
define([
'myDependecy'
], function(app) {
'use strict';
app.controller('MyCtrl', function($scope) {
doSomething();
var test = MyTest.doIt();
});
});
myDependency
是一个JavaScript文件,其中包含以下内容:
var MyTest = (function() {
var doIt = function() {
// …
};
return {
doIt: doIt
}
});
function doSomething() {
console.log("test");
}
JSHint的问题是我收到错误消息'MyTest' is not defined
和'doSomething' is not defined
。我该怎么做才能解决这个问题,因为它们已经定义但JSHint不知道。
更新
问题似乎是AMD和非AMD模块的混合。因此,在这种情况下,最佳解决方案不会是/* global … */
评论。
UPDATE2
grunt serve:dist
中也会出现问题,生成一个大的JavaScript文件。所以问题更复杂"。真正的问题还有一个依赖性。 MyTest
对象文字在这里:
(function(root) {
define("test1", ["test2"], function() {
return (function() {
var MyTest = (function () {
// …
}());
}).apply(root, arguments);
});
}(this));
doIt
的实现在名为define
的类似test2
块中定义,其中发生错误。