2016-08-04 5 views
0

Ich weiß, dass es viele andere Fragen in Bezug auf diese Angelegenheit gibt, aber ich habe keine gefunden, die ziemlich gut mit meiner übereinstimmt. Ich arbeite mit angularjs, express, html und jquery. Ich habe eine Datatable-Struktur, die einen Ordner nach Unterverzeichnissen abfragt und dann die Daten in einem ausgewählten Unterverzeichnis anzeigen kann. Die Nomenklatur des Unterverzeichnisses ist die ID eines Clients, und die Daten im Unterverzeichnis sind Dokumente. Auf der Seite, auf der die Datentabelle aktiviert ist, habe ich einen Parameter in diesem Format gesendet: domain/client/:id. Auf der winkligen Seite konnte ich diesen Parameter erfassen und andere Ergebnisse filtern. Aber ich bin nicht so sicher, wie in meinem Datatable. Ich weiß, wie man die Ergebnisse der Anzeige in der Datentabelle filtern kann, das ist nicht das Problem. Das Problem ist, diesen Parameter zu erfassen und dann an meine Filterfunktion zu übergeben. Hier ist der Code für meine Datentabelle:DataTables - Filtertabelle Daten nach Parameter durch URL

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

Sie sollten dies zu einer Direktive machen und dann können Sie Ihren Parameter über 'scope' und ein Attribut an die Direktive übergeben. Es gibt viele Posts über die Verwendung von jQuery mit einer Direktive in Angular. – Lex

Antwort

0

Hier Lösung:

Ich habe diese Variablen:

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

dann das spezifische Unterverzeichnis wie folgt aufgerufen:

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

     });