我对 Angular 很陌生,在配置 IdleProvider 和 KeepaliveProviders 时遇到问题。请理解这个问题:我已经正确配置了这两个提供程序,并且我的空闲超时正在工作。我正在寻找的是如何提供值通过从属性文件中读取这些值来发送给这些提供者。我已经能够从属性文件中读取值,但我无法在我的 .config() 方法中将它们传递给提供者。
我正在使用 angular 1.4.3(请不要让我升级 - 我刚刚加入了一个他们正在使用它的项目。
这是我在 route.js 中的配置方法
define(['app'], function(app) {
'use strict';
return app
.config(function($stateProvider, $urlRouterProvider, $httpProvider, KeepaliveProvider, IdleProvider) {
console.log("Idle timer is here")
IdleProvider.idle(5); //Rather than hardcoding, I want to pass from a property file
IdleProvider.timeout(5); //Rather than hardcoding, I want to pass from a property file.
KeepaliveProvider.interval(10); //Same here - pass from a property file
我有一个服务类,我在其中读取我的属性文件并将结果设置在 $sessionStorage 但我无法将 sessionStograge 注入上面的 .config(..) 方法,因为您只能将常量和提供程序注入 .config( ..)。任何帮助,将不胜感激!
auth.getRedirectUrls2 = function() {
console.log("getRedirectUrls2 has been caled!!");
var promise = $http.get("resources/sessiontimeout.properties")
.then(function(response) {
console.log("In getRedirectUrl2 response is: ", response.data);
console.log("Is the damn data in the session or not: ", $sessionStorage.redirectprops);
$sessionStorage.redirectprops = response.data;
return response.data;
})
.catch(function(response) {
console.error('Gists error', response.status, response.data);
})
.finally(function() {
console.log("In getRedirectUrls2 - Finally, all is done!!");
});
$sessionStorage.redirectpromise = promise;
console.log("The promise is: ", promise);
console.log("The promise from session is: ", $sessionStorage.redirectpromise);
return promise;
};
=======编辑了后续问题====
我有以下项目结构,但不知道在哪里创建提供程序。webapp/静态/app/js
- 控制器(这里的所有控制器)
- 指令者(这里的所有指令)
- 服务(这里的所有服务)
另外,我可以像这样在提供者构造函数中创建 tryConstant.layouts.idleTime 吗?
- layout.idleTime=xyz
- layout.intervalTime=abc
我在哪里注入 $sessionStorage 或提供程序中的服务?