2016-04-15 5 views
1

Ich möchte eine Javascript-Bibliothek in GWT verwenden.Wie benutze ich JS lib in GWT via ScriptInjector?

Ich lege die Dateien in den öffentlichen Ordner, so dass es zwischen dem Client und dem Server geteilt wird und injiziert das Javscript nach diesem Tutorial (https://pelle.io/2015/01/27/integrating-javascript-libraries-into-gwt-using-jsni/).

StyleInjector.inject(INSTANCE.fullcalendarCSS().getText()); 
    StyleInjector.inject(INSTANCE.fullcalendarPrintCSS().getText()); 
    StyleInjector.inject(INSTANCE.schedulerCSS().getText()); 
    ScriptInjector.fromString(INSTANCE.jqueryJS().getText()).setWindow(ScriptInjector.TOP_WINDOW).inject(); 
    ScriptInjector.fromString(INSTANCE.momentJS().getText()).setWindow(ScriptInjector.TOP_WINDOW).inject(); 
    ScriptInjector.fromString(INSTANCE.fullcalendarJS().getText()).setWindow(ScriptInjector.TOP_WINDOW).inject(); 
    ScriptInjector.fromString(INSTANCE.scheduleJS().getText()).setWindow(ScriptInjector.TOP_WINDOW).inject(); 

Jedes Mal, wenn ich meinen javscriptcode ausführe, bekomme ich eine "not a function" Ausnahme.

public static native void drawScheduler() /*-{ 

    var calendar = $doc.getElementById("calendar"); 
    calendar.fullCalendar({ 
     defaultView: 'timelineMonth', 
     events: [ 
      // events go here 
     ], 
     resources: [ 
      // resources go here 
     ] 
     // other options go here... 
    }); 

}-*/; 
+0

wrap was gwt Version verwenden Sie? – hahn

Antwort

2

Angenommen fullCalendar ist aus einem jQuery Plugin, dann DOM-Elemente werden nicht modifiziert; Sie müssen es in das jQuery "Objekt" (in der Regel $(calendar), hier wäre es wahrscheinlich $win.$(calendar))