Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 禁用角度工厂对象上的重新加载_Angularjs_Routing_Factory - Fatal编程技术网

Angularjs 禁用角度工厂对象上的重新加载

Angularjs 禁用角度工厂对象上的重新加载,angularjs,routing,factory,Angularjs,Routing,Factory,我有一个包含大量问题(168个)的测试,所以我使用路由和工厂来创建一个对象,该对象保存测试的所有问题和答案,但我有一个问题,当用户没有点击重新加载时,一切都很好,当用户点击重新加载时,所有问题和答案都会丢失 我用缓存工厂尝试了同样的方法,但在重新加载时对象丢失的情况也是一样 这是我的密码: (function(){ var app = angular.module('psicoTestsApp', ['ngRoute']); app.config(['$routeProvide

我有一个包含大量问题(168个)的测试,所以我使用路由和工厂来创建一个对象,该对象保存测试的所有问题和答案,但我有一个问题,当用户没有点击重新加载时,一切都很好,当用户点击重新加载时,所有问题和答案都会丢失

我用缓存工厂尝试了同样的方法,但在重新加载时对象丢失的情况也是一样

这是我的密码:

(function(){
    var app = angular.module('psicoTestsApp', ['ngRoute']);

    app.config(['$routeProvider', function($routeProvider) {
        $routeProvider.
            when('/intro', {
                templateUrl: 'partialsKuder/kuderIntro.html',
                controller: 'IntroCtrl'
            }).
            when('/detalles/:paginaId', {
                templateUrl: 'partialsKuder/kuderDetail.html',
                controller: 'PreguntaDetalleCtrl'
            }).
            otherwise({
                redirectTo: '/intro'
            });
    }]);

    app.factory("appInfo", function(){
        return {};
    });


    app.controller('IntroCtrl', ['$scope', '$http', 'appInfo', function ($scope, $http, appInfo) {
        $scope.appInfo = appInfo;

        $http.get('preguntas.json').success(function(data) {
            $scope.appInfo.preguntas = data;
        });

    }]);

    app.controller('PreguntaDetalleCtrl', ['$scope', '$routeParams', '$http', 'appInfo', function($scope, $routeParams, $http, appInfo) {
        $scope.appInfo = appInfo;
        $scope.preguntas = $scope.appInfo.preguntas;

        $scope.paginaId = parseInt($routeParams.paginaId);
        $scope.siguiente = $scope.paginaId + 1;

        $scope.pregunta1 = $scope.preguntas[($scope.paginaId * 4) + 0];
        $scope.pregunta2 = $scope.preguntas[($scope.paginaId * 4) + 1];
        $scope.pregunta3 = $scope.preguntas[($scope.paginaId * 4) + 2];
        $scope.pregunta4 = $scope.preguntas[($scope.paginaId * 4) + 3];

    }]);

})();
有没有办法让它像饼干一样?这样我就不会在重新加载时丢失de信息了?或者我可以在表单中禁用重新加载吗


谢谢

是的,正如PSL所指出的,对于用户点击页面上的“重新加载”,你真的无能为力。这类似于重新启动计算机或重新启动应用程序。如果您以某种方式存储会话信息(ngStorage是一种很好的方法,或者您可以使用会话cookie,或者您可以存储在后端),您就无法在重新加载事件中真正持久保存数据。

您可能想看一看,谢谢,ng存储工作异常,所以我尝试了ng cookie,但对于cookie来说,信息太大了,所以我最终改变了一切,每次都转到服务器。