请看这个例子.
http://jsfiddle.net/LdeWK/2/
http://jsfiddle.net/LdeWK/2/
我想知道如何绑定可观察数组的值.我知道上面的例子中的问题,就是这一行
<p>Editing Fruit: <input data-bind="value: $data" /></p>
$data是实际值,而不是通常绑定的observable函数.
这似乎应该是一个非常简单的过程,但我不能弄清楚.
在其他情况下,我使用了observable数组,并将observable对象作为observable数组的每个元素.我想知道如何让这个工作与可观察的数组.
谢谢
解决方法
如果您对数组或observableArray中的项目进行读/写操作,那么它们将需要是对象的属性.否则,$data将是未解释的可观察者,KO无法写入实际的可观察值.
你必须做一些像:
var viewmodel = function(myFruit) { var observableFruit = ko.utils.arrayMap(myFruit,function(fruit) { return { name: ko.observable(fruit) }; }); this.fruit = ko.observableArray(observableFruit); }; ko.applyBindings(new viewmodel( ["Apple","banana","orange"] ));
这里有一个例子:http://jsfiddle.net/rniemeyer/LdeWK/3/
个别的水果不一定需要被观察到,除非你需要你的UI来对变化的值做出反应(你的样本需要做出反应,因为你显示了一个只读的水果列表).