我正在绑定到数组内的可观察对象,并且绑定似乎仅在第一次从模型中读取值时才会生效。随后对绑定到可观察对象的输入进行更改不会更新模型。
JSFiddle 在这里:http: //jsfiddle.net/coverbeck/hK49f/88/。这是HTML:
<div>
<input data-bind="value: work"/>
<span data-bind="text: work"></span>
</div>
<!-- ko foreach: nowork -->
<div>
<input data-bind="value: $data"/>
<span data-bind="text: $data"></span>
</div>
<!-- /ko -->
和 JavaScript:
var viewModel = {
work: ko.observable('Change me and span changes'),
nowork : [ko.observable("Change me and span doesn't update")]
}
ko.applyBindings(viewModel);
当您在第一个输入中键入内容时,绑定到可观察的范围会更新。当您在第二个输入中键入内容时,绑定到数组内可观察对象的跨度不会更新。但是那个输入和跨度开始正确。
使“nowork”成为 ko.observableArray 而不是普通数组没有任何区别(我也不希望它这样做)。
我觉得我错过了一些明显的东西,但我不明白是什么。有人知道发生了什么吗?
谢谢,
查尔斯