2015-12-02 166 views
0

我總是看到錯誤SyntaxError:當我運行我的代碼時出現了意外的令牌,我查看了其他答案,但沒有人幫助過我。 我正在使用angularjs並傳入來自json數組的id。SyntaxError:意外的令牌ü

var fav=[]; 
if($window.localStorage['fav']){ 
    $scope.fav = JSON.parse($window.localStorage['fav']); 
} else { 
    $scope.fav = []; 
}; 

$scope.togglefav = function(id) { 
var a = JSON.parse($window.localStorage['fav']); 
    if (a.indexOf(id) == -1){ 
    fav.push(id); 
    console.log(fav); 
    $window.localStorage['fav'] = JSON.stringify(fav); 
    } 
    else{ 
     a.splice(id, 1); 
     $window.localStorage['fav'] = JSON.stringify(a); 
     console.log(a); 
    } 
}; 

我目前的localStorage是空的,但在if語句應該通過創建一個新的數組,如果一個不可解決任何問題。

+0

該錯誤似乎不適用於此代碼段。您是否在開發人員控制檯中將錯誤追蹤到源代碼? – isherwood

+0

'JSON.parse(value)'返回這個錯誤,如果'value'是'undefinied',檢查你的數據 - 檢查這個小提琴 - http://jsfiddle.net/nzevfvgg/ –

+0

我想你可能想替換'var a = JSON.parse($ window.localStorage ['fav']);'var'='var a = JSON.parse($ scope.fav);'因爲您似乎在上一步執行空檢查並保存到fav數組。只是一個猜測...... – isick

回答

3

當您嘗試解析undefined時,會出現該錯誤。它將其解析爲一個字符串,並將其作爲第一個字符(不是有效的JSON格式)輸入u,然後拋出。檢查錯誤的行號,查看出現故障,很可能

var a = JSON.parse($window.localStorage['fav']); 

,因爲你不檢查,如果該值存在或不存在。

+0

我得到的錯誤說它在ionic.bundle.js中,所以它不能真正幫助我找到問題出在哪一行。 – Snow