刷新后角度工厂数据丢失

时间:2016-01-22 09:52:51

标签: javascript angularjs

我正在使用角度工厂将数据从一种形式传递到另一种形式。

工作正常,但是当我刷新页面时,数据从页面中丢失。 我怎么解决这个问题?

我正在使用以下代码

angular.module('app')
    .factory('SignupService',function() {
        return {
                first_name : ''
        };
    } );

我在form1中分配这样的值。

SignupService.first_name = $scope.first_name ; 

在form2中获得这样的价值

function Signup2Ctrl($scope,$http,$location,$auth,$state, SignupService){
    alert(SignupService.first_name);
});

如何解决此问题或任何其他替代办法来解决此问题。

提前致谢。

2 个答案:

答案 0 :(得分:0)

AngularJS用于构建单页Web应用程序(SPA)。当您重新加载页面时,应用程序进入其初始状态。如果要保留任何数据,则应使用浏览器cookie,本地存储,缓存等。

答案 1 :(得分:0)

AngualrJS的整个想法不是重新加载页面。这使得它更适合开发本机应用程序,用户无法以浏览器提供的方式重新打印页面。

当用户点击刷新时,有一种方法可以防止代码重置。你需要实现这样的东西:

var windowElement = angular.element($window);
windowElement.on('beforeunload', function (event) {
    // do whatever you want in here before the page unloads.        

    // the following line of code will prevent reload or navigating away.
    event.preventDefault();
});

要使用它,只需创建一个.run实例并在那里实现它。您是否了解过AngularJS应用程序的加载顺序?在此处阅读更多相关信息:AngularJS app.run() documentation?

您还应该查看$ routeprovider:https://docs.angularjs.org/api/ngRoute/provider/$routeProvider

如果重新加载是应用程序的必要部分,如果使用ngRoute模块,也许您可​​以创建某种重新加载按钮?