2016-07-20 8 views
0

Ich habe ein Problem, wo ich versuche, auf eine Datentabelle Objekt eines bestimmten HTML-Elements zuzugreifen.Get DataTable-Objekt aus HTML-Element

Ich habe in der Dokumentation für JQuery Daten Tabelle geschaut und dieses Beispiel bin mit: https://datatables.net/reference/option/retrieve

Dies funktioniert jedoch nicht. Hier ist mein Code in meiner globalen Datei main.js:

function initTable() { 
    return $(".dynamic-table").DataTable({ 
     "aaSorting": [], 
     "scrollY": 530, 
     "scrollCollapse": true, 
     "lengthMenu": [ 
      [100, 400, 1000, 5000, -1], 
      [100, 400, 1000, 5000, "All"] 
     ], 
     "retrieve": true 
    }); 
} 

$(document).ready(function() { 
    initTable(); 
}); 

nun innerhalb meiner anderen Datei ich versuchen, das Objekt abzurufen:

$(document).ready(function() { 
    var table = initTable(); 
}); 

Das das Objekt nicht abrufen, sondern initialisiert es das Objekt wieder und bewirkt, dass die Tabelle zweimal rendert.

enter image description here

Ich habe auch versucht:

$(document).ready(function() { 
    var table = $(".dynamic-wide-table").DataTable(); 
}); 

, weil ich einige Threads gelesen haben zu sagen, dass eine leere Initialisierung wird nur das Objekt abzurufen.

Keine dieser Lösungen funktioniert. Wenn jemand weiß, was ich falsch mache, würde ich es sehr schätzen! Vielen Dank.

+0

Warum wollen Sie „Datatable“ anstelle von „Datatable“ nutzen? sie sind nicht die gleichen, die erstere instanziiert eine Tabelle und gibt eine datable api-Referenz zurück, während die zweite nur eine Tabelle instanziiert –

+0

Ich bin mir nicht sicher. Seit ich Daten-Tabellen implementiert habe, habe ich 'DataTable' verwendet. Was ist der Unterschied? – Nic

+0

@ elad.chen ist es tatsächlich 'dataTable' nicht' DataTable' oder 'datatable'. Schauen Sie sich das Beispiel an, es ist Groß- und Kleinschreibung. – Adjit

Antwort

1
$(".dynamic-wide-table").DataTable(); 

Referenzieren wie oben ist der richtige Weg, um eine Datentabellen-API-Referenz zu erhalten.

Sie können dies in den Beispielen für die Datentabellen https://datatables.net/examples/ajax/objects.html testen und dann den folgenden JS in Ihre Konsole eingeben. Sie werden feststellen, dass die Tabelle nicht neu gezeichnet oder eine zweite Tabelle erstellt wird.

$('#example').DataTable() 

Siehe auch die API-Dokumentation https://datatables.net/reference/api/, die diese Methode deutlich machen. erweitern

0

Sie verwenden können ..

$.extend(true, $.fn.dataTable.defaults, { 
      "bFilter": true, 

     });