【发布时间】:2017-06-12 12:23:38
【问题描述】:
我想像这样包装一个javascript代码:
map.addMarker({
lat: -12.043333,
lng: -77.028333,
draggable: true,
fences: [polygon],
outside: function(m, f){
alert('This marker has been moved outside of its fence');
}
});
这是我如何用 Java 编写的:
@JsType(namespace = JsPackage.GLOBAL, isNative = true, name = "Object")
public class MarkerOptions {
@JsProperty
public double lat;
@JsProperty
public double lng;
@JsProperty
public boolean draggable;
@JsProperty
public Polygon fences;
@JsFunction
public interface FunctionOutsideParam {
void outside();
}
@JsProperty
public FunctionOutsideParam outside;
}
但它不起作用。即使你在我的浏览器控制台中也没有任何错误。有人知道如何使它适用于外部回调函数吗? 谢谢和问候。
【问题讨论】:
-
“它不工作”是如何表现出来的?错误?预期的调用没有发生?
-
你的示例JS和Java不一致-
fences属性应该是Polygon[],FunctionOutsideParam应该带两个参数,对吧?你能分享你拥有的Java,它相当于你在问题中拥有的JS吗? -
@Andrei 调用没有发生,控制台或其他任何地方都没有错误。这就是为什么如何做到这一点更加令人困惑的原因。
-
@ColinAlworth 是的,你是对的。它们不一致,我会尝试更新它。我会贴出完整的JS代码和Java代码。谢谢。
-
看起来它应该可以工作,虽然我之前没有使用过函数。最终的 JS 中是否包含您的 MarkerOptions 类?你使用
generateJsInteropExports标志吗?
标签: javascript java gwt gwt-jsinterop