$window对象在其他模块中不可用
$window object is not available in other modules
我为AngularJS应用程序创建了两个单独的模块。在第一个模块中,一旦我登录,我将登录信息和 API 密钥存储在 $window
对象中。
$window.sessionStorage["apiKey"] = apiKey;
$window.sessionStorage["profile"] = profile;
但是,我无法访问第二个模块中的窗口对象。
我的问题:
我可以使用任何工厂服务从其他模块访问窗口对象吗?
或者,如何在对象中保留$window
属性?
您应该为此目的使用服务
创造
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]);
注入控制器
app.controller('MyController', ['$scope', 'myService', function ($scope, myService) {
$scope.serviceName = myService.name;
}]);
相关文章:
- 在BoilerplateJS浏览器加载所有脚本(在其他模块中),而不考虑激活的模块
- 我可以像其他库一样将JointJS作为AngularJS模块注入吗
- 将路由处理程序委托给NodeJS+Express中的其他模块
- 如何从指令中的其他模块调用方法
- 使用其他模块中的函数,避免异步回调地狱
- 其他模块中的节点事件发射器
- 使用Angular JS将常量注入其他模块配置
- 如何将全局变量放在Globals.js模块中,并在其他模块中访问它们
- requireJS 中其他上下文的访问模块
- 是否可以访问同一文件中的其他模块导出功能
- $window对象在其他模块中不可用
- RequireJS - 打包与主干相关的模块,以便在其他 Rails/JS 应用程序中重用
- RequireJS - 先初始化一个依赖模块,然后再加载其他模块
- Dojo构建没有't包括dojo/dom、dom/when、dojo/dom-class和大约100个其他模块
- require.js-无法加载任何其他模块
- 如何在PhantomJS或CasperJS中导入其他javascript模块
- 如何从IIS重写模块获得JavaScript(或其他)重写的URL
- 将功能注入其他Node.js模块
- Node.js REST API服务中使用的基于资源的路由模块,或用于此类服务的其他有用模块
- Joomla下拉菜单在其他模块后面