拼写错误或缺少模块?
Misspelled or missing module?
我有一个 ASP.NET MVC5 应用程序,我正在其中使用 AngularJS。在这里,我有一个名为 atTheMS
的模块,其中有一个名为 albumService
的服务工厂和 3 个控制器:ListController
、EditController
和 DetailsController
。服务和控制器都依赖于 atTheMS
模块,但我只从 albumService
得到这个错误
Uncaught Error: [$injector:nomod] Module 'atTheMS' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.
它说它发生在 (anonymous function) albumService.js:27
(function (app) {
var albumService = function ($http, albumApiUrl) {
var getAll = function () {
return $http.get(albumApiUrl);
};
var getById = function (id) {
return $http.get(albumApiUrl + id);
};
var update = function (album) {
return $http.put(albumApiUrl + album.Id, album);
};
var create = function (album) {
return $http.post(albumApiUrl, album);
};
var destroy = function (album) {
return $http.delete(albumApiUrl + album.Id);
};
return {
getAll: getAll,
getById: getById,
update: update,
create: create,
delete: destroy
};
};
app.factory("albumService", albumService);
}(angular.module("atTheMS")));
使用 (angular.module("atTheMS"))
的其他文件不会出现此错误,这是复制我拥有的另一个工厂时生成的,该工厂完全相同,只是单词 "album" 被单词 [= 替换了31=] 并且模块是 "atTheLibrary" 并且当我在该页面上时没有错误。我很困惑为什么这会有所不同。如有任何帮助,我们将不胜感激。
根据要求,这是视图:
@section scripts {
<script src="~/Scripts/angular.js"></script>
<script src="~/Scripts/angular-route.js"></script>
<script src="~/Client/Scripts/Album/albumService.js"></script>
<script src="~/Client/Scripts/Album/atTheMS.js"></script>
<script src="~/Client/Scripts/Album/ListController.js"></script>
<script src="~/Client/Scripts/Album/DetailsController.js"></script>
<script src="~/Client/Scripts/Album/EditController.js"></script>
}
<div data-ng-app="atTheMS">
<ng-view></ng-view>
</div>
<hr />
你的 IIFE 格式不正确,基本上你放错了右括号位置 )
。
应该是简单的
代码
(function (app) {
//inner code should be as is
})(angular.module("atTheMS"));
检查您正在初始化模块的文件 - atTheMS。 angular 模块必须是 initialized/loaded 才能在该模块中创建工厂。从您的 HTML 可以看出文件 albumService.js 在 atTheMS.js 文件之前加载。尝试在 atTheMS.js 文件之后加载 albumService.js 文件。
我有一个 ASP.NET MVC5 应用程序,我正在其中使用 AngularJS。在这里,我有一个名为 atTheMS
的模块,其中有一个名为 albumService
的服务工厂和 3 个控制器:ListController
、EditController
和 DetailsController
。服务和控制器都依赖于 atTheMS
模块,但我只从 albumService
Uncaught Error: [$injector:nomod] Module 'atTheMS' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.
它说它发生在 (anonymous function) albumService.js:27
(function (app) {
var albumService = function ($http, albumApiUrl) {
var getAll = function () {
return $http.get(albumApiUrl);
};
var getById = function (id) {
return $http.get(albumApiUrl + id);
};
var update = function (album) {
return $http.put(albumApiUrl + album.Id, album);
};
var create = function (album) {
return $http.post(albumApiUrl, album);
};
var destroy = function (album) {
return $http.delete(albumApiUrl + album.Id);
};
return {
getAll: getAll,
getById: getById,
update: update,
create: create,
delete: destroy
};
};
app.factory("albumService", albumService);
}(angular.module("atTheMS")));
使用 (angular.module("atTheMS"))
的其他文件不会出现此错误,这是复制我拥有的另一个工厂时生成的,该工厂完全相同,只是单词 "album" 被单词 [= 替换了31=] 并且模块是 "atTheLibrary" 并且当我在该页面上时没有错误。我很困惑为什么这会有所不同。如有任何帮助,我们将不胜感激。
根据要求,这是视图:
@section scripts {
<script src="~/Scripts/angular.js"></script>
<script src="~/Scripts/angular-route.js"></script>
<script src="~/Client/Scripts/Album/albumService.js"></script>
<script src="~/Client/Scripts/Album/atTheMS.js"></script>
<script src="~/Client/Scripts/Album/ListController.js"></script>
<script src="~/Client/Scripts/Album/DetailsController.js"></script>
<script src="~/Client/Scripts/Album/EditController.js"></script>
}
<div data-ng-app="atTheMS">
<ng-view></ng-view>
</div>
<hr />
你的 IIFE 格式不正确,基本上你放错了右括号位置 )
。
应该是简单的
代码
(function (app) {
//inner code should be as is
})(angular.module("atTheMS"));
检查您正在初始化模块的文件 - atTheMS。 angular 模块必须是 initialized/loaded 才能在该模块中创建工厂。从您的 HTML 可以看出文件 albumService.js 在 atTheMS.js 文件之前加载。尝试在 atTheMS.js 文件之后加载 albumService.js 文件。