2016-08-03 135 views
1

我是新來angularjs,我有一個問題,數據是消失頁得到了刷新,我搜索和查找張貼在計算器一個類似的問題,我提到它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

您使用的三元Ø讀者錯誤的方式。您可以使用它像這樣:

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

或保留||型圖案的三元運算符:

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

這工作,因爲JSON.parse(null)回報null