为什么' angular'没有在单独的控制器文件中定义?

时间:2016-05-28 17:05:59

标签: javascript angularjs

我在一个文件中声明一个Angular模块App.js,如下所示:

hookPointApp = {};
(function () {
    "use strict";

    var hookPointApp = angular.module("hookPointApp", ["ngResource"]);

    hookPointApp.controller("rootController", [
        "$scope", "$http", function($scope, $http) {

            $scope.getCurrentUser = function() {
                $http.post("/Account/CurrentUser", {
                    ....
                    .then(function(data) {
                            $scope.currentUser = angular.fromJson(data.data).Id
                        },
                    ...
            };
            $scope.getCurrentUser();
        }]);
})();

这似乎有效,我在加载并运行该函数时没有报告任何错误。然后,在一个单独的Areas.js文件中,我尝试为模块声明一个控制器,如下所示:

(function () {
    'use strict';

    angular.module("hookPointApp").controller('AreasController', ["$scope", "$http", function ($scope, $http) {
        ....
    };

两个文件都在自动执行函数中声明它们的内容,我的脚本在body元素的底部被引用如下:

@Scripts.Render("~/bundles/angular")
<script src="~/Scripts/App/App.js"></script>
<script src="~/Scripts/App/AreasController.js"></script>

angular捆绑包含官方&#39; Angular模块和其他两个将被捆绑在一起,我可以让它们很好地工作。当我执行该行时:

angular.module("hookPointApp").controller('AreasController', ["$scope", "$http", function ($scope, $http)

AreasController.js中,我收到错误消息

Uncaught ReferenceError: angular is not defined

然而,Angular bundle被引用,我希望,在传统的脚本引用之前呈现。我在这里失踪了什么,或做得很愚蠢?

仅了解更多信息,angular包的定义如下:

bundles.Add(new ScriptBundle("~/bundles/angular").Include(
    "~/Scripts/angular/angular.js",
    "~/Scripts/angular/angular-resource.js"));

0 个答案:

没有答案