我的代码就像这样
App.js
angular.module('mailerApp', [
'mailerApp.services',
'mailerApp.controllers',
'ui.bootstrap',
'angular-loading-bar',
'textAngular',
'angularFileUpload'
]);
Cotrollers.js
angular.module('mailerApp.controllers').controller('MailerCntrl', ['$scope', 'FileUploader', function ($scope, FileUploader) {
}]);
Services.JS
angular.module('mailerApp.services', []).factory('rateRequestService', ['$http', rateRequestService]);
function rateRequestService($http) {
var service = { getData: getData };
return service;
function getData() {
return $http({
method: 'Get',
url: '../services/RateRequestWS.asmx/GetReadOnlyData?'
});
}
}
HTML
body ng-app="mailerApp" ng-controller="MailerCntrl">
</body>
一切看起来都没问题,但这会引发错误
Uncaught Error: [$injector:nomod] Module 'mailerApp.controllers' 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.
任何人都可以指出我在这里做错了吗?
答案 0 :(得分:4)
而不是
angular.module('mailerApp.controllers').controller...
你需要做
angular.module('mailerApp').controller... // to add the controller to the mailerApp module
angular.module('mailerApp.controllers', []).controller... // to add the controller to a new mailerApp.controllers module
同样如此;
angular.module('mailerApp.services').factory...
相反,你需要
angular.module('mailerApp').factory... // add the factory to the mailerApp module
angular.module('mailerApp.services', []).factory... // add the factory to a new mailerApp.services module
当你创建和angular模块时,你给它一个名字和数组中的依赖项列表;
var module = angular.module('<module_name>', [<dependencies>])
但是当你向模块添加一个控制器/工厂时,你需要使用你创建的module
对象。
答案 1 :(得分:3)
当您编写angular.module('mailerApp.controllers', [ ])
时,您将新模块创建为'mailerApp.controllers'
,并在第二个参数中传递依赖项。
当您编写angular.module('mailerApp.controllers')
时,它会引用先前创建的模块。
但是在您的情况下直接引用模块而不创建它,因此它会为您提供错误。其他情况也是如此