我的控制器里面有下面的代码片段。在我的HTML中,我有一个附有ng-checked="enterToSend"
的复选框。以及ng-click="enterToSendCheck()"
$scope.enterToSend = localStorage.getItem('enterToSend');
$scope.enterToSendCheck = function() {
$scope.enterToSend = ($scope.enterToSend == false) ? true : false;
localStorage.setItem('enterToSend', $scope.enterToSend);
}
它在localstorage中正确更新。我打开localstorage,打开/关闭它,并在我的浏览器中更新为true / false。
但是,在加载页面时,使用ng-checked或常规checked属性,会检查它(无论是真还是假)。这是为什么?
答案 0 :(得分:3)
localStorage
仅存储字符串表示,"true"
或"false"
与true
或false
不同。
$scope.enterToSend = booleanFromString(localStorage.getItem('enterToSend'));
function booleanFromString(s) {
if (s == 'true') return true;
if (s == 'false') return false;
throw new Error("Unable to convert '" + s + "' to a boolean, valid arguments are 'true' or 'false'");
}