DataTables - 按URL给出的参数筛选表数据

时间:2016-08-04 16:12:54

标签: jquery angularjs datatable

我知道还有很多其他问题与此有关,但我没有找到一个与我的情况完全吻合的问题。我正在使用angularjs,express,html和jquery。我有一个数据表结构,用于查询子目录的文件夹,然后能够在选定的子目录中显示数据。子目录命名法是客户端的id,子目录中的数据是文档。在数据表所在的页面上,我以这种格式发送了一个参数:domain/client/:id。在角度方面,我能够捕获此参数并过滤其他结果。但是,我不太确定如何在我的数据表中。我知道如何过滤数据表中的显示结果,这不是问题。问题是捕获此参数,然后将其传递给我的过滤器函数。这是我的数据表的代码:

$(document).ready(function() {
    var table = $(".linksholder").dataTable({
        "fnCreatedRow": function(nRow, aData, iDataIndex) {
            if (!aData.IsDirectory) return;
            var path = aData.Path;
            $(nRow).bind("click", function(e) {
                $.get('/files?path=' + path).then(function(data) {
                    table.fnClearTable();
                    table.fnAddData(data);
                    currentPath = path;
                });
                e.preventDefault();
            });
        },
        "aoColumns": [{
            "sTitle": "",
            "mData": null,
            "bSortable": false,
            "sClass": "head0",
            "sWidth": "55px",
            "render": function(data, type, row, meta) {
                if (data.IsDirectory) {
                    return "<a href='#' target='_blank'><i class='fa fa-folder'></i>&nbsp;" + data.Name + "</a>";
                } else {
                    return "<a href='/assets/" + data.Path + "' target='_blank'><i class='fa " + "'></i>&nbsp;" + data.Name + "</a>";
                }
            }
        }],
    });
    $.get('/files').then(function(data) {
        table.fnClearTable();
        table.fnAddData(data);
    });
    $(".up").bind("click", function(e) {
        if (!currentPath) return;
        var idx = currentPath.lastIndexOf("/");
        var path = currentPath.substr(0, idx);
        $.get('/files?path=' + path).then(function(data) {
            table.fnClearTable();
            table.fnAddData(data);
            currentPath = path;
        });
    });
});

1 个答案:

答案 0 :(得分:0)

这是解决方案:

我添加了这些变量:

var url = window.location.href;
var id = document.location.href.split('client/')[1];

然后调用特定的子目录,如下所示:

 $.get('/files?path=' + id).then(function(data) {
          table.fnClearTable();
          table.fnAddData(data);

        });