2016-05-08 2 views
0

Как бы я ввел $rootscope в wenzey.services, чтобы он был доступен через мое приложение?

(function() { 

    'use strict'; 

    /** 
    * 
    */ 
    angular 
     .module('wenzey.services', '$rootScope', []) 

     $rootScope.type = "consumer"; 

})(); 

Это сообщение об ошибке Сейчас я получаю:

Uncaught ReferenceError: $rootScope is not defined 

Uncaught Error: [$injector:modulerr] Failed to instantiate module wenzey due to: 
Error: [$injector:modulerr] Failed to instantiate module wenzey.services due to: 
Error: [ng:areq] Argument 'modulesToLoad' is not an array 

ответ

1

Вы используете неправильное определение для модуля. Вы смешиваете модуль со службой. Чтобы правильно их использовать, вы должны понимать следующее:

  1. Вы определяете модуль как зависимость другого модуля в определении модуля. Например.

    angular 
        .module('wenzy.services', []) 
        .factory('AppService', function() { 
        // Add methods 
        }); 
    

    Теперь вы можете использовать модуль wenzy.services как зависимость при определении модуля wenzy.controllers, как показано ниже:

    angular 
        .module('wenzy.controllers', ['wenzy.services']);  
    
  2. Вы инъекционная услугу в другом сервисе/контроллере при определении услуги/контроллер. Например. Мы вводили услугу AppService в AppController ниже

    angular 
        .module('wenzy.controllers', ['wenzy.services']) 
        .controller('AppController', function (AppService) { 
        // Add controller defintion 
        }) 
    

$rootScope это услуга, предоставляемая по угловым и может быть введен в любой сервисный/контроллера. Вам не нужно добавлять это как часть определения модуля.

Смежные вопросы