我正在生成一个随机字符串,该字符串包含在Reddit API的重定向网址中。为了安全起见,当我重定向回我的Angular应用程序时,我应该检查字符串。请参阅下文,了解我如何生成字符串:
function openTaskDialog(ev, test)
{
$mdDialog.show({
controller : 'differentController',
controllerAs : 'vm',
templateUrl : 'dialog.html',
parent : angular.element($document.body),
targetEvent : ev,
clickOutsideToClose: true,
onComplete: onComplete,
onRemoving: function (event, promise) {
console.log('onRemoving',event, promise, $mdDialog)
},
locals : {
Test : test,
event: ev
}
})
.finally(function(){
})
}
function onComplete (scope, el, options) {
console.log('scope, el, options', scope, el, options)
}
问题是我在重定向到我的应用程序后得到了我的RandomService的一个新实例,因此字符串重新生成,因此在我检查时不匹配。
我的两个主要问题是: 1)在重定向回我的应用程序后,是否期望服务再次实例化? 2)如何在重定向到外部URL时从Angular 2应用程序中存储信息?
答案 0 :(得分:0)
重定向回应用程序时,所有内容都将重新实例化。一种解决方案是将字符串存储在localStorage中:
localStorage.setItem('someName', someValue);
localStorage.getItem('someName');
您可能希望创建某种逻辑,以便在不再需要时从localStorage中清除该项并生成新字符串。然后,您的服务可以在启动时检查localStorage中是否存在字符串,如果是,则使用它,如果不存在则生成新的字符串。