我为AngularJS应用创建了两个独立的模块。在我登录后的第一个模块中,我将登录信息和API密钥存储在$window
对象中。
$window.sessionStorage["apiKey"] = apiKey;
$window.sessionStorage["profile"] = profile;
但是,我无法访问第二个模块中的窗口对象。
我的问题:
我可以使用任何工厂服务从其他模块访问窗口对象吗?
或者,我如何在$window
对象中保留属性?
答案 0 :(得分:2)
您应该为此目的使用服务
创建
var myService = function ($http) { // injecting $http just for the sake of it
var service = {};
service.name = "My Service";
return service;
};
添加到模块
app.service('myService', ['$http', myService]);
注入 Controller
app.controller('MyController', ['$scope', 'myService', function ($scope, myService) {
$scope.serviceName = myService.name;
}]);