AngularJs模块依赖注入错误

时间:2015-01-06 13:18:01

标签: javascript angularjs

嗨我在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
        };
    }]);

})();

1 个答案:

答案 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
 })();