GWT アプリでインクリメンタル DOM ライブラリを使用したいと考えています。
https://google.github.io/incremental-dom/#about
私は Java の世界から来たので、JavaScript の名前空間とモジュールの概念に苦労しています。Incremental DOM のクロージャ バージョンで Closure Compiler を使用できました (ソースからビルドする必要があります)。
次の行で始まります。
goog.module('incrementaldom');
したがって、通常の JS で使用する場合は、次のように入力します。
var patch = goog.require('incrementaldom').patch;
そして、patch
関数は私のコードの範囲で利用可能になります. @JsInterop
しかし、注釈付きのクラスからアクセスできるようにする方法は?
私は次のようなものを試しました:
public class IncrementalDom {
@JsMethod(namespace = "incrementaldom", name = "patch")
public static native void patch(Element element, Patcher patcher);
@JsFunction
@FunctionalInterface
public interface Patcher {
void apply();
}
}
しかし、うまくいきません。ランタイムで次のエラーが発生します。
(TypeError) : Cannot read property 'patch' of undefined
incrementaldom
したがって、何らかの形でモジュールまたは少なくともpatch
メソッドのみを公開する必要があると思います。しかし、方法がわかりません。