我想在我的 GWT 应用程序中使用增量 DOM 库。
https://google.github.io/incremental-dom/#about
当我来自 Java 世界时,我对 JavaScript 命名空间和模块的概念感到困惑。我能够将 Closure Compiler 与 Incremental DOM 的闭包版本一起使用(必须从源代码构建)。
它从以下行开始:
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
方法。但我不知道怎么做。