【发布时间】:2014-05-06 09:55:49
【问题描述】:
我是 JSON 和淘汰赛的新手。我面临一个问题,即我有一个 JSON 格式的数据集,例如定义了 10 个布尔值,例如
IsHappy = true;
IsSad = false;
IsAngry = true;
等等。我的 ViewModel 是从 JSON 字符串创建的,我将值绑定到复选框:-
<input type="checkbox" data-bind="checked: IsHappy"/>
<input type="checkbox" data-bind="checked: IsSad"/>
<input type="checkbox" data-bind="checked: IsAngry"/>
我将 ViewModel 转换回 JSON 并将其 ajax 保存到服务器。
这一切都很好,但是我不知道如何实现“全选”功能。我已经阅读了在线示例 (http://jsfiddle.net/rniemeyer/eT7xV/),其中涉及创建 observableArray 和切换 IsSelected() 可观察对象,但在我的情况下,如何将不同的 JSON 属性映射到 IsSelected() 属性,以及如何切换IsSelected() observable 更新原始 JSON 属性。
我尝试使用 jquery 设置 attr('checked'),但这样做会选中该框,但不会更新 ViewModel,这意味着当我将其转换回 JSON 并将其发布到服务器端时,没有检测到任何更改。
【问题讨论】:
标签: javascript jquery json knockout.js