2014-09-03 2 views
0

У меня есть тест с большим количеством вопросов (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]; 

    }]); 

})(); 

Так есть ли способ сделать это, как печенье? поэтому я не потеряю информацию о перезагрузке? или я могу отключить перезагрузку в форме?

Благодаря

+2

Возможно, вы захотите взглянуть на [ngStorage] (http://ngmodules.org/modules/ngStorage) – PSL

+0

Спасибо, ng хранилище работало странно, поэтому я попробовал ng-cookies, но информация оказалась большой для cookie, поэтому я, наконец, все изменил, чтобы каждый раз переходить на сервер. –

ответ

0

Да, как указано PSL, вы не можете сделать что-нибудь о ударять пользователь перезагрузки на странице. Это похоже на перезагрузку компьютера или перезапуск приложения. Если вы каким-либо образом сохраняете информацию о сеансе (ngStorage - это хороший способ, или вы можете использовать файл cookie сеанса, или вы можете хранить его на бэкэнд), вы не сможете навсегда сохранить данные во время перезагрузки.

Смежные вопросы