我是新來knockout.js,我試圖綁定到代表用戶的下列對象:Knockout.js:綁定到複雜的對象
{
"$id": "1",
"$values": [
{
"$id": "2",
"Locations": {
"$id": "3",
"$values": []
},
"Photos": {
"$id": "4",
"$values": []
},
"UserId": 1,
"Name": "Test User"
}
]
}
用戶可以零個或多個位置,以及零個或更多照片。
視圖模型:
function UsersViewModel() {
var self = this;
self.users = ko.observableArray();
var baseUri = 'http://localhost:46241/api/users';
$.getJSON(baseUri, function (data) {
self.users = data;
});
}
$(document).ready(function() {
ko.applyBindings(new UsersViewModel());
})
HTML中包含以下綁定:
<ul id="update-users" data-bind="foreach: users">
<li>
<div><div class="item">User ID</div>
<input type="text" data-bind="value: $data.UserId" />
</div>
<div><div class="item">Name</div>
<input type="text" data-bind="value: $data.Name" />
</div>
</li>
</ul>
難道我不當平掉這樣做呢?或者,用戶對位置和照片的對象引用可能會搞亂綁定?
用戶標識和名稱來在對象的「$ values」部分之下 - 你不包含在你的綁定中。 $值以$開頭的事實可能會讓你陷入淘汰賽的困境。如果你能夠控制物體的生成方式,那麼擺脫美元來清理它是值得的。 –
是你的self.users =數據工作正常嗎?我沒有看到將$ values數組寫入您的可觀察數組 – ryadavilli