Angular全球工厂

时间:2014-11-14 23:37:45

标签: angularjs

我创建了一个我想在不同页面中使用的工厂:

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; 
});

然后我会将它添加到apps run方法中,我将它分配给$ 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; 
});

1 个答案:

答案 0 :(得分:0)

angular.module的数组参数是新模块所依赖的其他模块的数组。 loginApp需要将sessionApp列为依赖项。

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