您没有向我们展示您的 ViewModel,只有您的 View。但是,我猜测您有一些关于未在后台解析绑定的 JavaScript 错误,因为您正在潜入payer
ViewModel 而不将它们作为函数调用。
如果我按如下方式调整您的视图:
Account holder:
<input type='text'
data-bind="value: payer().banking_details()[0] ? payer().banking_details()[0].account_holder: 'unknown'"
style = "width: 100%" />
Account holder:
<span data-bind="text: payer().banking_details()[0] ? payer().banking_details()[0].account_holder: 'unknown'"></span>
并使用这样的 ViewModel ...
var holder = function() {
this.account_holder = ko.observable("J DOE");
}
var person = function() {
this.banking_details = ko.observableArray();
this.banking_details.push(new holder());
}
var vm = function() {
this.payer = ko.observable(new person());
}
ko.applyBindings(new vm());
...然后一切正常。有关演示,请参阅此 JSFiddle(编辑字段,然后保留输入:范围已更新)。
PS。我还更改了您的代码的最后一点(</span\>
为</span>
),这可能重要也可能不重要。