KnockOutobservableArrayをjQueryDataTableにバインドしました。この配列にアイテムを動的に追加すると、新しいアイテムがテーブルに正しくレンダリングされますが、データテーブル自体の一部のオプションが更新されません。ポケットベルは更新されません。また、「利用可能なデータがありません」というメッセージは消えません。
HTML:
<table class="table table-striped" id="tblSample">
<thead>
<tr>
<th>Name</th>
</tr>
</thead>
<tbody data-bind="foreach: List">
<tr>
<td data-bind="text: Name"></td>
</tr>
</tbody>
</table>
<button class="btn" type="button" data-bind="click: AddSample">Test</button>
ノックアウトモデル:
var Sample = function(name) {
this.Name = ko.observable(name);
};
var ViewModel = function() {
var self = this;
self.List = ko.observableArray();
self.AddSample = function() {
self.List.push(new Sample('New'));
};
};
ko.applyBindings(new ViewModel());
DOM対応:
$(document).ready(function() {
$('#tblSample').dataTable({
"sDom": "<'row'<'span6'l><'span6'f>r>t<'row'<'span6'i><'span6'p>>",
"sPaginationType": "bootstrap",
"bFilter": true,
"bLengthChange": false,
"bSort": true,
"iDisplayLength": 15,
"oLanguage": {
"sLengthMenu": "_MENU_ records per pagina"
}
});
});
動作中のJSFiddle:http: //jsfiddle.net/PhpDk/1
私は何か間違ったことをしていますか、それともこれはバグですか?
ありがとう、ニコ
(編集:jsfiddleのCDNリンクを修正)