可观察数组和计算错误
Observable array and computed error
我有一个复选框列表,在选中和取消选中时执行函数。我还有一个可观察数组,用于保存当前活动的复选框的值(放入本地存储中)。相关代码如下:
this.layerToggleChecked = knockout.observableArray();
// ...
this.layerToggle = function (source, name, type, url, description) {
return knockout.computed({
read: function () {
return this.layerToggleChecked();
},
write: function (checked) {
if (checked) {
alert("loading");
this.layerToggleChecked.push(source());
} else {
alert("removing");
this.layerToggleChecked.remove(source());
}
}
}, this);
}
复选框按照计划工作,触发函数,直到我添加返回
的return this.layerToggleChecked();
。knockout-3.2.0.js:13 Uncaught TypeError: b.push is not a function
Knockout的checked
绑定处理数组的方式与其他值不同。您期望将true
或false
写入计算的可观察对象,但是您返回的是一个数组,这显然是不相同的。
:
如果您的参数解析为array
,则需要特别考虑。在这种情况下,KO将设置元素,如果值与数组中的项匹配,则检查元素,如果不包含在数组中,则不检查元素。
当用户选中或取消选中复选框时,KO将相应地从数组中添加或删除值。
因为你使用一个数组来保存选中的值,你最好直接绑定到它:
<input type="checkbox" data-bind="checkedValue: source, checked: layerToggleChecked" />
相关文章:
- 猫头鹰旋转木马宽度计算错误
- 百分比计算错误
- JavaScript 在两个输入中计算错误的百分比
- JS脚本计算金额的总和计算错误
- 在变量或对象中存储值时,Javascript计算错误
- 如何计算错误
- Javascript价格计算错误
- javascript代码计算错误
- 在html和Java中使用表单和函数时计算错误
- JavaScript:parseFloat计算错误
- JavaScript计算错误
- 函数计算错误
- jquery mobile 1.3.1填充顶部在初始页面加载时计算错误
- jQuery函数计算错误
- 时差计算错误
- Javascript计算错误
- 如何在JavaScript中跟踪计算错误
- 皮卡布——高度计算错误
- 可观察数组和计算错误
- 高度:自动计算错误,如果元素隐藏时dom加载,然后显示