2014-07-26 3 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;, это будет работать, является ли Angule попыткой привязать модель к флажку, прежде чем он будет извлечен из localstorage?

ответ

4

Проблема заключается в том, что вы сохраняете данные в локальном хранилище, все преобразуется в строку, поэтому логическое сравнение не выполняется. Ваш вариант это конвертировать данные обратно в формат JSON или в вашем случае, так как это просто логическое значение, вы можете также использовать $ объем. $ Eval

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

Смотрите эту скрипку http://jsfiddle.net/cmyworld/Jn7N2/

+0

Спасибо, что работал шарм. Как сделать обратное и сохранить значение флажка в хранилище? Если я добавлю опцию ng-onchange и попробую сохранить значение в localstorage, это всегда верно. – Judo

+0

Смотрите мою обновленную скрипку. Необходимо явно указать значение хранилища, в котором нет данных, ожидающих хранения – Chandermani

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