2014-07-26 37 views
0

我試圖從localStorage中檢索值並將它們綁定到我的Angular應用程序中的複選框。將localStorage綁定到AngularJS中的複選框

//controller code 
var storage = window.localStorage; 
$scope.Setting = storage.getItem('setting'); 


//view 
<div>{{Setting}}</div> 
<input type="checkbox" ng-model="Setting"> 

在上面的代碼中,div將正確顯示true或false,但是這不會綁定到複選框。如果代碼更改爲$scope.Setting = true;,這將起作用,是Angular在從localstorage檢索之前嘗試將模型綁定到複選框?

回答

4

問題是當您將數據保存到本地存儲時,所有內容都被轉換爲字符串,因此布爾比較失敗。你的選項是將數據轉換回JSON格式或在您的情況,因爲它僅僅是一個布爾值,你也可以使用$範圍。$ EVAL

$scope.Setting = $scope.$eval(storage.getItem('setting'));

看到這個小提琴 http://jsfiddle.net/cmyworld/Jn7N2/

+0

謝謝,發揮了魅力。如何進行相反操作並將複選框的值存儲在存儲中?如果我將ng-onchange添加到複選框並嘗試將值存儲在localstorage中,它始終爲真。 – Judo

+0

看到我更新的小提琴。您需要明確設置存儲值,而不存儲數據 – Chandermani