提问者:小点点

配置数据,但在过滤器后调用ajax


我的问题与此类似:jQuery Datatable-更改数据url,但我不想在设置Datatable时调用ajax

我对datatable有以下设置:

p._createDataTableMappings = function (application, field) {
        $('#data_mappings').DataTable({
            "dom": 'rtip',
            "ajax": {
                "url": "/api/applications/" + application + "/mappings/" + field,
                "dataSrc": ""
            },
            "columns": [
                { "data": "Application1" }, 
                { "data": "Field1" },
                { "data": "Value1" },
                { "data": "Application2" },
                { "data": "Field2" },
                { "data": "Value2" }
            ]
        });

url返回的数据是一个对象数组,因此我将dataSrc设置为“”

但我不想在应用程序和字段值有数据之前调用ajax。这些值通过此函数设置:

$("#search").on("click", function (event) {
    var application_value = $("#application").val();
    var field_value = $("#field").val();
    if (application_value && field_value) {
        var table = $("#data_mappings").DataTable();
        table.ajax.url("/api/applications/" + application_value + "/mappings/" + field_value).load();
    }
});

我的疑问是如何配置ajax调用

        "ajax": {
            "url": "/api/applications/" + application + "/mappings/" + field,
            "dataSrc": ""
        },

>

  • 如果我删除url属性,我会从数据中得到一个警告:无效的JSON响应

    如果我删除了设置函数中的整个ajax属性,调用table.ajax.url(myUrl). load()需要一个属性名为data的对象,但是我有一个对象数组。


  • 共1个答案

    匿名用户

    正如@尤里所说,最好的方法可能是破坏桌子并重建它。这个实时示例可能会有所帮助——你按下一个按钮来加载数据,所以这类似于你的点击事件。