如何通过 ScriptInjector 在 GWT 中使用 JS 库?

How to use JS lib in GWT via ScriptInjector?

我想在 GWT 中使用 javascript 库。

我将文件放在 public 文件夹中,以便它在客户端和服务器之间共享,并按照本教程 (https://pelle.io/2015/01/27/integrating-javascript-libraries-into-gwt-using-jsni/) 注入 javscript。

    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();

每次我执行我的 javscriptcode 我都会得到一个 "not a function" 异常。

   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...
    });

}-*/;

假设 fullCalendar 来自 jQuery 插件,那么 DOM 元素没有被修改;你需要把它包装在 jQuery "object" 中(通常是 $(calendar),这里可能是 $win.$(calendar)