2016-08-03 14 views
1

ich AngularJS bin hier, ich habe ein Problem, dass die Daten verschwinden Seite aktualisiert bekam ich eine ähnliche Frage in Stackoverflow geschrieben suchen und finden, dass ich es genannt Data will disappear after page refresh,Unerwartetes Token;

meiner Fabrik Service

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 
    }; 

}]); 

Fehler:

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) 

ich weiß nicht, was ich falsch gemacht haben

+0

Syntaxfehler im ternären Operator: ** Korrekten Code: ** 'localStorage.getItem (" Daten ")? JSON.parse (localStorage.getItem ("Daten")): {}; '. – Tushar

Antwort

1

Sie verwendet, um die ternären o Perator den falschen Weg. Sie können es wie folgt verwenden:

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

Oder halten Sie die || Muster ohne ternären Operator:

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

Dies wird null weil JSON.parse(null) kehrt arbeiten.