【问题标题】:Binding localStorage to Checkbox in AngularJS将localStorage绑定到AngularJS中的复选框
【发布时间】:2014-09-18 00:31:30
【问题描述】:

我正在尝试从 localStorage 检索值并将它们绑定到我的 Angular 应用程序中的复选框。

//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 是否会在从本地存储中检索模型之前尝试将模型绑定到复选框?

【问题讨论】:

    标签: angularjs checkbox local-storage


    【解决方案1】:

    问题是当您将数据保存到本地存储时,所有内容都会转换为字符串,因此布尔比较失败。您的选择是将数据转换回 json 格式,或者在您的情况下,因为它只是一个布尔值,您也可以使用 $scope.$eval

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

    看到这个小提琴 http://jsfiddle.net/cmyworld/Jn7N2/

    【讨论】:

    • 谢谢,这很有魅力。做相反的事情并将复选框的值存储在存储中怎么样?如果我在复选框中添加 ng-onchange 并尝试将值存储在 localstorage 中,则它始终为 true。
    • 查看我更新的小提琴。需要显式设置 storage 值 没有数据与 storage 绑定
    猜你喜欢
    • 1970-01-01
    • 2014-09-05
    • 1970-01-01
    • 2013-09-09
    • 1970-01-01
    • 1970-01-01
    • 2017-04-09
    • 1970-01-01
    • 2015-06-27
    相关资源
    最近更新 更多