嗨我在AngularJs上遇到一些问题,每当我尝试在我的索引文件中加载多个工厂文件时(我初始化angular JS)。一切都很好,但我的Places工厂拒绝初始化,我在我的控制台收到此错误。 https://docs.angularjs.org/error/ $注射器/ unpr?P0 = PlacesProvider
这是我的app.js文件
(function(){
'use strict';
angular.module('app', ['oc.lazyLoad', 'ui.utils', 'app.configs', 'app.factories', 'app.ctrls']);
})();
我已经在索引文件中加载了这些依赖项的JavaScript文件,如此
<!-- Angular -->
{{ HTML::script('assets/js/frontend/src/vendor/angular/angular.min.js') }}
{{ HTML::script('assets/js/frontend/src/vendor/angular/angular-route.min.js') }}
{{ HTML::script('assets/js/frontend/src/vendor/bower_components/angular-ui-utils/ui-utils.min.js') }}
{{ HTML::script('assets/js/frontend/src/vendor/angular/ocLazyLoad.js') }}
<!-- App -->
{{ HTML::script('assets/js/frontend/src/app.js') }}
<!-- Angular Configurations -->
{{ HTML::script('assets/js/frontend/src/configs/routes.js') }}
<!-- Angular services -->
{{ HTML::script('assets/js/frontend/src/services/Users.js') }}
{{ HTML::script('assets/js/frontend/src/services/Places.js') }}
<!-- Angular directives -->
{{ HTML::script('assets/js/frontend/src/directives/foundation.js') }}
<!-- Angular controllers -->
{{ HTML::script('assets/js/frontend/src/controllers/mainCtrl.js') }}
<!-- End call for javascript files -->
这是我的工厂文件:
用户工厂
(function(){
// Initialize angular module
var app = angular.module("app.factories, []");
// Initialize user factory
app.factory('Users', ["$http", function ($http) {
// Define variables
return {
// My functions
};
}]);
})();
放置工厂
(function(){
// Initialize angular module
var app = angular.module("app.factories", []);
// Initialize places factory
app.factory('Places', ["$http", function ($http) {
// Define variables
return {
// My functions
};
}]);
})();
答案 0 :(得分:2)
在用户工厂
var app = angular.module("app.factories", []);
在地方工厂
var app = angular.module("app.factories")
即,您在第一次定义模块时应使用方括号,第二次必须将其删除。
可选地
(function(){
'use strict';
angular.module('app', ['oc.lazyLoad', 'ui.utils', 'app.configs', 'app.factories', 'app.ctrls']);
//define your app.factories module here
angular.module('app.factories', []);
// define your app.ctrls module for all controls
angular.module('app.ctrls', []);
//then you can use them in any where without square brackets
})();