我在一个文件中声明一个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"));