javascript - KnockoutJs - 如何将数据表与现有绑定(bind)表一起使用

标签 javascript knockout.js datatables

我有一个使用 knockoutJS 绑定(bind)的简单 HTML 表格。但是,我添加了一个自定义绑定(bind),它在表上应用了 jquery 数据表插件。

当我单击标题时,表格消失了。知道如何让它与 knockoutJS 一起工作吗?

最佳答案

其实不用knockoutJs来进行dataTable的绑定(bind)。由于 knockoutJs 已经将 HTML 表格绑定(bind)到模型,只需使用以下内容:

$(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);

最关键的是在映射前销毁已有的dataTable,映射后重新创建。我必须保留对初始数据表的引用以便以后销毁...

关于javascript - KnockoutJs - 如何将数据表与现有绑定(bind)表一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9836713/

相关文章:

javascript - knockout.js foreach $data AND $index()?

php - Laravel DataTables 服务实现和连接

php - MySQL 日期范围查询适用于 Sequel Pro,但不适用于 PHP (DataTables)

javascript - 使用 npm 发布 es6 和 es5 源代码

javascript - 在 javascript 应用程序中处理特定于环境的配置

javascript - 在 Angular Bootstrap Modal 和父 Controller 之间共享范围

javascript - 组件中的输入未正确更新

javascript - 无法使我添加到 knockout 模型中的对象可观察

javascript - 防止 Knockout 缓存加载的组件

javascript - 选中复选框后无法设置行的类