2016-08-03 8 views
1

Я новичок в angularjs, у меня есть вопрос, что данные исчезают страницы есть обновилась, я искать и найти подобный вопрос отвечал в StackOverflow, что я передала его Data will disappear after page refresh,Неожиданный токен;

моя фабрика служба

app.factory("MoreInfoOnChallengeSvc", ["$window", function ($window) { 
    var data = localStorage.getItem("data")? JSON.parse(localStorage.getItem("data")) || {}; 
    function setChallengeId(id){ 
     data = id; 
     localStorage.setItem("data", JSON.stringify(data)); 
    } 
    function getData(){ 
     return data; 
    } 
    return{ 
    setChallengeId: setChallengeId, 
     getData: getData 
    }; 

}]); 

ошибка:

EarnfitApp.js:240 Uncaught SyntaxError: Unexpected token ; 
jquery-migrate-1.1.0.min.js:1'//@ sourceURL' and '//@ sourceMappingURL' are deprecated, please use '//# sourceURL=' and '//# sourceMappingURL=' instead. 
angular.js:68 Uncaught Error: [$injector:modulerr] Failed to instantiate module earnfitApp due to: 
Error: [$injector:nomod] Module 'earnfitApp' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument. 
http://errors.angularjs.org/1.5.8/$injector/nomod?p0=earnfitApp 
    at http://localhost:2000/earnfitangular/angular/assets/js/angular.js:68:12 
    at http://localhost:2000/earnfitangular/angular/assets/js/angular.js:2082:17 
    at ensure (http://localhost:2000/earnfitangular/angular/assets/js/angular.js:2006:38) 
    at module (http://localhost:2000/earnfitangular/angular/assets/js/angular.js:2080:14) 
    at http://localhost:2000/earnfitangular/angular/assets/js/angular.js:4617:22 
    at forEach (http://localhost:2000/earnfitangular/angular/assets/js/angular.js:321:20) 
    at loadModules (http://localhost:2000/earnfitangular/angular/assets/js/angular.js:4601:5) 
    at createInjector (http://localhost:2000/earnfitangular/angular/assets/js/angular.js:4523:19) 
    at doBootstrap (http://localhost:2000/earnfitangular/angular/assets/js/angular.js:1758:20) 
    at bootstrap (http://localhost:2000/earnfitangular/angular/assets/js/angular.js:1779:12) 
http://errors.angularjs.org/1.5.8/$injector/modulerr?p0=earnfitApp&p1=Error…t%3A2000%2Fearnfitangular%2Fangular%2Fassets%2Fjs%2Fangular.js%3A1779%3A12) 

Я не знаю, что я сделал неправильно

+0

Ошибка синтаксиса в тройном операторе: ** Исправить код: ** localStorage.getItem ("data")? JSON.parse (localStorage.getItem ("data")): {}; '. – Tushar

ответ

1

Вы использовали тройную O неверный путь. Вы можете использовать его как это:

var data = localStorage.getItem("data") ? JSON.parse(localStorage.getItem("data")) : {}; 

Или держать || шаблона без тройного оператора:

var data = JSON.parse(localStorage.getItem("data")) || {}; 

Это будет работать, потому что JSON.parse(null) возвращается null.

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