带有RequireJS和AngularJS的JSHint:函数/对象"未定义"

时间:2014-08-20 13:17:25

标签: javascript angularjs requirejs jshint

我有一个带有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块中定义,其中发生错误。

0 个答案:

没有答案