2016-04-15 12 views
0

Ich arbeite mit django-require und ich muss in meiner html-Seite importieren Datatables und Datatables Responsive (das ist ein Plugin für Datatables, um es reaktionsfähiger zu machen). Das Problem hier ist, dass, wenn ich alle Wege zu datatables.js und datatables.responsive.js setze, die abschließenden js einen Fehler haben, der alle Indexe auf der Seite blockiert. Grundsätzlich denke ich, dass, weil Databases.responsive vor Databellen geladen werden muss, da Databases eine Funktion referenziert, die in datatables.responsive ist.Django-require - wie man ein Modul vor einem anderen lädt

Eigentlich ist mein common.js Datei etwas wie folgt aus:

requirejs.config({ 
baseUrl: '../static/js', 
paths: { 
    "app" : 'app', 
    "jquery" : '../jquery/dist/jquery.min', 
    "datatables-responsive" : '../datatables.net-responsive/js/dataTables.responsive', 
    "datatables" : '../datatables.net/js/jquery.dataTables', 
    }, 
shim: { 
    "datatables-responsive" : ['jquery'], 
    "datatables" : ['datatables-responsive'], 
    } 
}); 

Ich habe versucht, Datentabellen-responsive eine Abhängigkeit von Datentabellen zu machen, aber das funktioniert nicht. Irgendwelche Ideen?

PS: Wenn ich nur Datentabellen ohne Datentabellen-responsive importieren es funktioniert normalerweise ohne Fehler oder andere Probleme

+1

Welche Version von Datatables verwenden Sie? Es scheint mir, dass die aktuelle Version AMD-konform ist und daher nicht geglättet werden sollte. – DFriend

+0

Hallo, ich benutze die neuste Version von Daten und Tabellen. Dank deines Kommentars habe ich angefangen, die richtigen Dinge zu suchen und ich habe das Problem gefunden. Ich werde die Lösung in einer Minute veröffentlichen, danke! –

Antwort

0

Schließlich fand ich das Problem, oder besser, die Probleme. Datatables ist bereits ein AMD-Modul und muss nicht geglättet werden, so war es kein Problem, es alleine zu verwenden, das Problem war ein anderer: datatables responsive. In meiner Forschung fand ich nicht ANYTHING Erwähnung, dass Datenformate reagiert in einer bestimmten Weise Daten. In meiner requestejs Konfiguration lade ich Databases mit dem Namen "datatables", aber wenn Sie Daten reaktionsfähig laden, erfordert in seinem Code "datatables.net". Das war das Problem. Datatables brauchen nicht geglättet zu werden, weder Datenformate, keine Abhängigkeiten oder andere Dinge, Sie definieren sie einfach. Muss sagen, dass reaktionsfähige Datenobjekte auch jQuery unter dem Namen "jquery" erfordert. Schauen Sie einfach auf den Code unten die richtige Art und Weise zu verstehen, sie zu importieren:

requirejs.config({ 
    paths: { 
     "jquery" : './path/to/jquery/dist/jquery', 
     "datatables.responsive" : './path/to/datatables.net-responsive/js/dataTables.responsive', 
     "datatables.net" : './path/to/datatables.net/js/jquery.dataTables', 
    }, 
}); 

dann in Ihrer init-Datei (oder was auch immer Sie es genannt) Sie sie wie so importieren:

define(['jquery','datatables.net','datatables.responsive'], function($, datatables) { 

    $(document).ready(function() { 
     $('#datatable').DataTable({ 
      responsive: true, 
     }); 
    }); 

}); 

FINISH ! Jetzt haben Sie ein voll funktionsfähiges Datenformat mit der erforderlichen Erweiterung (wahrscheinlich funktioniert das auch mit anderen Plugins). Hoffe, das hilft jemandem, und tut mir leid für alle englischen Fehler, ich bin Italiener.

+0

Grazie per la condivisione la vostra soluzione. Wie ist mein Italienisch? (Ihr Englisch ist in Ordnung.) – DFriend

+0

Danke, Ihr Italienisch ist nicht so schlimm, aber der richtige Satz wäre "Grazie per aver condiviso la vostra soluzione" :) –

Verwandte Themen