在重定向到外部URL时从哪里存储数据的最佳方法是什么?

时间:2017-04-12 15:26:38

标签: angular

我正在生成一个随机字符串,该字符串包含在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应用程序中存储信息?

1 个答案:

答案 0 :(得分:0)

重定向回应用程序时,所有内容都将重新实例化。一种解决方案是将字符串存储在localStorage中:

localStorage.setItem('someName', someValue);

localStorage.getItem('someName');

您可能希望创建某种逻辑,以便在不再需要时从localStorage中清除该项并生成新字符串。然后,您的服务可以在启动时检查localStorage中是否存在字符串,如果是,则使用它,如果不存在则生成新的字符串。