我有一个奇怪的问题,至少我觉得很奇怪。
以下将不显示任何内容:
<input type="text" data-bind="value: selectedAddress.street1" />
但是,如果像这样绑定,那么它会显示正确的值,但不会更新(显示值但似乎没有绑定到对象):
<input type="text" data-bind="value: ko.toJS($data).selectedAddress.street1" />
我检查了 selectedAddress 对象是否实际上包含以下数据:
JSON.stringify(ko.toJS(selectedAddress), null, 2)
它确实
{
"id": 5631,
"street1": "Some Adress 43",
"street2": null,
"postcode": "15850",
"city": "GhostTown",
"country": "UK",
"addressTypes": []
}
如何让输入字段正确绑定到对象属性并相应地显示/更新值?
视图模型:
var theViewModel = function() {
var self = this;
self.no = ko.observable();
self.name = ko.observable();
self.addresses = ko.observableArray([]);
self.selectedAddress = ko.observable(new Address());
...
}
我究竟做错了什么?