我有一个简单的 HTML 表,它使用 knockoutJS 绑定。但是,我添加了一个自定义绑定,该绑定在表上应用 jquery 数据表插件。
当我单击标题时,表格就会消失。知道如何让它与 knockoutJS 一起工作吗?
其实没有必要使用knockoutJs来进行dataTable的绑定。由于 knockoutJs 已经将 HTML 表绑定到模型,因此只需使用以下内容:
$(function() {
var dtOptions = {
"bPaginate": false,
"bLengthChange": false,
"bFilter": false,
"bInfo": false,
bJQueryUI: true
}
var dt = $("#leadsTable").dataTable(dtOptions);
$("#searchButton").click(function() {
//... set url with search terms...
$.get(url, function (data) {
// destroy existing table
dt.fnDestroy();
ko.mapping.fromJS(data, vm.model);
// re-created AFTER ko mapping
dt.dataTable(dtOptions);
});
})
});
var serialisedModel = @Html.Raw(new JavaScriptSerializer().Serialize(Model));
var vm = {
data: ko.toJSON(serialisedModel),
}
ko.applyBindings(vm);
关键部分是在映射之前销毁现有的数据表,并在映射之后重新创建。我必须保留对初始数据表的引用以供以后销毁......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)