我正在尝试将一个简单的整数数组绑定到带有输入的无序列表,如下所示:
视图模型
self.amounts = ko.observableArray();
for (var i=0; i<5; i++){
self.amounts.push(ko.observable(i));
}
HTML
<ul data-bind="foreach: amounts">
<li><input type="text" data-bind="value: $data"/></li>
</ul>
这将生成列表,其中输入正确填写了数字 0-4。但是,当我更改任何输入的值时,ViewModel 不会获得新值。
如果我使用一组简单对象作为 observableArray,如下所示:
[{amt: 0}, {amt: 1}, {amt: 2}]
并调整 HTML 以将输入绑定到“amt”属性,然后更改输入中的值会触发 ViewModel 中的更改。
是否可以使用简单值数组并实现双向绑定,而不使用更改原始数据模型的解决方法?如果是这样,我做错了什么?
编辑:这个问题与它被标记为重复的Knockout JS 的问题不同 - 如何正确绑定 observableArray,它是关于简单类型元素的特殊双向绑定案例 - ints或strings。