sli*_*eed 6 knockout-2.0 knockout.js knockout-mvc
这是如何绑定ko.observableArray字符串的后续内容?
如何将可编辑的可观察字符串数组绑定到一组输入框?我不想绑定到一个对象数组,因为从服务器发送的底层JSON是一个字符串数组.
以下示例不起作用(在http://jsfiddle.net/LDNeA/上尝试).使用可观察字符串绑定对象数组是可以的,但直接绑定可观察字符串数组不起作用,并且模型不会更新.
重要的是文本框中的条目被映射回模型.
JS:
var ViewModel = function() {
this.value = ko.observable("hi")
this.array1 = ko.observableArray([ko.observable("hi"), ko.observable("there")]);
this.array2 = ko.observableArray([{ data: ko.observable("hi") }, { data: ko.observable("there") }]);
};
ko.applyBindings(new ViewModel());
Run Code Online (Sandbox Code Playgroud)
HTML:
<div class='liveExample'>
<p><input data-bind='value: value' /></p>
<div data-bind="foreach: array1">
<p><input data-bind='value: $data' /></p>
</div>
<div data-bind="foreach: array2">
<p><input data-bind='value: data' /></p>
</div>
</div>
<pre data-bind="text: ko.toJSON($data)"></pre>
Run Code Online (Sandbox Code Playgroud)
sli*_*eed 14
正如@Tyrsius发布的链接所指出的,这是Knockout中的一个错误(?).
最简单的解决方法是使用$parent.items()[$index()],如这个小提琴:http://jsfiddle.net/r8fSg/.请注意,$parent.items()这是foreach中使用的observableArray项.
<div data-bind="foreach: items">
<p><input data-bind='value: $parent.items()[$index()]' /></p>
</div>
<pre data-bind="text: ko.toJSON($data)"></pre>
Run Code Online (Sandbox Code Playgroud)
而型号:
var ViewModel = function() {
this.items = ko.observableArray([ko.observable("hi"), ko.observable("hi")]);
};
ko.applyBindings(new ViewModel());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4516 次 |
| 最近记录: |