这是主要模块:
(function() {
"use strict";
angular
.module('wda', [
/* Angular modules */
'ngRoute',
/* 3rd-party modules */
'ui.bootstrap',
/* Feature areas */
'wda.overview',
/* Shared resources */
'websiteService'
])
.config(function($routeProvider) {
$routeProvider
.otherwise({
redirectTo: '/overview'
});
});
}());
这是我想在整个应用中使用的服务:
(function() {
"use strict";
angular
.module('wda')
.factory('websiteService', websiteService);
websiteService.$inject = ['$window', '$q'];
function websiteService($window, $q) {
var svc = {};
return svc;
}
}());
这是我在index.html中加载它们的方式,就在</body>
标记上方:
<script src="scripts/vendor/angular.js"></script>
<script src="scripts/vendor/angular-route.js"></script>
<script src="scripts/vendor/ui-bootstrap-tpls-0.12.1.min.js"></script>
<script src="app/app.module.js"></script>
<script src="app/overview/overview.module.js"></script>
<script src="app/overview/overview.controller.js"></script>
<script src="app/shared/website-service/websiteService.service.js"></script>
所有文件都被加载,没有404,但我仍然收到此错误:
未捕获错误:[$ injector:modulerr]无法实例化模块wda 由于:错误:[$ injector:modulerr]无法实例化模块 websiteService由于:错误:[$ injector:nomod]模块 'websiteService'不可用!你要么拼错了模块 命名或忘记加载它。如果注册模块,请确保您 将依赖项指定为第二个参数。
我理解它的内容,但不明白为什么会这样。我的代码出了什么问题?
答案 0 :(得分:1)
您应该声明您的服务:
'use strict';
angular.module('wda')
.factory('websiteService', ['$window','$q',function($window,$q){
var svc = {};
return svc;
}]);
&#13;
然后在您的控制器中,您可以注入您的工厂:
'use strict';
angular.module('wda')
.controller('YourCtrl',['websiteService', function(websiteService){
//Whatever you want to do with your service
}]);
&#13;