【发布时间】:2012-02-17 19:40:58
【问题描述】:
我遇到了一个问题,即复选框绑定不能很好地与 KnockoutJS 2.0 一起使用。我有一个对象数组。这些对象的属性之一是一组不同的对象。在子对象中有一些属性,其中之一是布尔值。我为每个父对象建立一个列表,并在每个父对象下显示子对象。对于每个孩子的列表,我有两个视图,一个只读视图和一个编辑视图。在只读中,我有代表是否基于布尔属性检查项目的图像。这可行,如果我通过控制台更新布尔值,我会看到我所期望的——图像消失或根据我分配的值显示。在编辑视图中,图像被替换为复选框。当我通过控制台更新值时,我看到了相同的行为——当我期望它是时检查它,而不是当我不检查它时。当我选中或取消选中该复选框时,问题就出现了。这样做不会更改复选框绑定到的基础值。
这是我的数据的基本概念。
[
{
"xxx": "yyy",
"xxx": "yyy",
...
"Displays": [
{
"xxx": "yyy",
...
"Excluded": false,
},
{
"xxx": "yyy",
...
"Excluded": true,
}
],
}
]
这是绑定
<input type="checkbox" data-bind="checked: !Excluded()" />
【问题讨论】:
-
尝试从绑定中删除 ()(选中:已排除)。仅当您在可观察属性上评估表达式时才需要它,在这种情况下,您的 Excluded 属性甚至不是可观察的。
-
这是一个可观察的,我只是没有发布代码使其成为可观察的。