2014-11-14 4 views
1

Я создал завод, который я хотел бы использовать в разных страницах:Угловая глобальная фабрика

var sessionApp = angular.module('sessionApp', ['LocalStorageModule']); 

sessionApp.config(function(localStorageServiceProvider) 
{ 
localStorageServiceProvider 
    .setPrefix('mystorage') 
    .setStorageType('localStorage'); 

}); 

sessionApp.factory('SessionFactory', function(localStorageService) 
{ 
var service = {}; 
var _store = 'session'; 

service.load = function() 
{ 
    var session = localStorageService.get(_store); 
} 

service.save = function(data) 
{ 
    localStorageService.set(_store, JSON.stringify(data)); 
} 

service.delete = function() 
{ 
    localStorageService.remove(_store); 
} 

return service; 
}); 

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

var loginApp = angular.module("loginApp", []); 

loginApp.run(function($rootScope, SessionFactory) 
{ 
//$rootScope.sessionFactory = SessionFactory; 

$rootScope.$on('$routeChangeStart', 
function(ev, next, current) 
{ 

});  
}); 

Моя ошибка:

Неизвестный поставщик: SessionFactoryProvider < - SessionFactory

Является ли это потому, что моя фабрика из sessionApp и мой модуль Войти является loginApp? Означает ли это, что мне нужно иметь переменные с таким же именем, как показано ниже:

Файл: login.js

var myApp = angular.module("loginApp", []); 

myApp.run(function($rootScope, SessionFactory) 
{ 
//$rootScope.sessionFactory = SessionFactory; 

$rootScope.$on('$routeChangeStart', 
function(ev, next, current) 
{ 

});  
}); 

Файл: session.js

myApp.config(function(localStorageServiceProvider) 
{ 
localStorageServiceProvider 
    .setPrefix('mystorage') 
    .setStorageType('localStorage'); 

}); 

myApp.factory('SessionFactory', function(localStorageService) 
{ 
var service = {}; 
var _store = 'session'; 

service.load = function() 
{ 
    var session = localStorageService.get(_store); 
} 

service.save = function(data) 
{ 
    localStorageService.set(_store, JSON.stringify(data)); 
} 

service.delete = function() 
{ 
    localStorageService.remove(_store); 
} 

return service; 
}); 

ответ

0

Аргумент массива для угловой. модуль - это массив других модулей, от которых зависит новый модуль. loginApp необходимо указать sessionApp в качестве зависимости.

var loginApp = angular.module("loginApp", ["sessionApp"]); 
+0

Благодарю вас, это было то, что мне нужно было сделать. – adviner

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