特定のクラスでマークされたページに複数の div があります。何かのようなもの :
<div class="modal-body auctionRequested" >
<table data-bind="foreach: auctionBatches">
<tr>
<td data-bind="text: $data.Id"></td>
<td data-bind="text: $data.Name"></td>
</tr>
</table>
<div class="modal-footer">
<a href="#" class="btn btn-success">Call to action</a>
<a href="#" class="btn" data-dismiss="modal">Close</a>
</div>
</div>
</div>
ビューモデルは次のように定義されています:
function AuctionBatch(id, name, logoUrl, startDate, endDate, isBlind, isBuyNow) {
this.id = ko.observable(id);
this.name = ko.observable(name);
this.logoUrl = ko.observable(logoUrl);
this.startDate = ko.observable(startDate);
this.endDate = ko.observable(endDate);
}
function AuctionBatchList() {
this.auctionBatches = ko.observableArray([]);
}
そして、それは次の方法で適用されます。
$(document).ready(function() {
var auctions = [];
$.ajax({
url: '@Url.Action("GetAuctionBatches", "CarStates")',
type: 'GET',
contentType: 'application/json; charset=utf-8',
success: function (data) {
if (data.success) {
auctions= data.list;
modals = $('.auctionRequested');
$.each(modals, function(i, item) {
var vm = ko.dataFor(item);
vm.auctionBatches(auctions);
});
}
else {
$("#error").css("display", "block");
$("#errorText").text(data.message);
}
},
error: function () {
alert("error");
}
});
var modals = $('.auctionRequested');
$.each(modals, function(i, item) {
ko.applyBindings(new AuctionBatchList(), item);
});
});
ただし、サーバーから複数の要素が取得されていることを firebug で確認できますが、UI には何もバインドされておらず、エラーも表示されません。私は何が欠けていますか?