您好我在ObservableArray中使用knockout observables,在observableArray中推送的对象就像是跟随,我正在制作它的价值'属性可观察:
{
'name': "aka[]",
'value': (value && value != "" ? ko.observable(value) : ko.observable(""))
}
我在HTML中使用foreach将输入元素绘制到observableArray中找到的对象数量(下面的akaList)
<p data-bind="foreach: $root.akaList()">
<input title="Also Known As (AKA)" data-bind="attr:{ 'name' : $data.name, 'value': $data.value}" type="text"
required="required"/>
</p>
当我输入input元素时,它不会更新observableArray中的对象值。我发现foreach展开了可观察数组,这就是为什么我无法看到数组中的更新。所以我尝试用$parent.akaList()[$index()].value
来做,我的HTML变成这样:
<p data-bind="foreach: $root.akaList()">
<input title="Also Known As (AKA)" data-bind="attr:{ 'name' : $data.name, 'value': $parent.akaList()[$index()].value}" type="text"
required="required"/>
</p>
但它仍然无法正常工作你能告诉我出了什么问题吗?由于我项目中的一些限制,我无法使用映射插件。我试图找到其他方式。我用错误的语法写东西吗?以下是小提琴:
答案 0 :(得分:1)
您可以使用value
绑定作为
<input title="Also Known As (AKA)" data-bind="value: $data.value, attr:{ 'name' : $data.name}" type="text" required="required" />
如果你可以使用knockout 3.2.0,那么使用textInput
绑定。
<input title="Also Known As (AKA)" data-bind="textInput: $data.value, attr:{ 'name' : $data.name}" type="text" required="required" />
JsFiddle:https://jsfiddle.net/29Lvhrx4/2/