视图模型不更新
问题描述:
我有我的意见KnockoutJS一个问题,在使用这样的:视图模型不更新
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>\>
有什么建议?
答
您没有向我们展示您的ViewModels,只有您的视图。但是,我猜测你有一些关于不在后台解析的绑定的JavaScript错误,因为你正在潜入你的payer
ViewModels而不用作为函数调用它们。
如果我调整自己的意见如下:
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>
,并使用视图模型是这样的...
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());
...那么这一切工作正常。有关演示,请参阅this JSFiddle(编辑字段,然后离开输入:跨度得到更新)。
PS。我还将代码的最后一位(</span\>
更改为</span>
),这可能也可能不重要。