我发现很难使JSNI直接与Errai一起使用,例如以下代码:
private static native void _createCallOut(JavaScriptObject callout)/*-{
$wnd.hopscotch.getCalloutManager().createCallout(callout);
}-*/;
该JSNI从哪里被称为roothing
@PageShowing
public void onShow() {
CallOut startCallOut = new CallOut("dashboard", Placement.RIGHT);
startCallOut.setTitle("Take an example tour");
startCallOut.setContent("Start by taking an example tour to see GWT-Tour in action!");
startCallOut.setWidth(240);
startCallOut.centerXOffset();
startCallOut.centerArrowOffset();
GwtTour.createCallOut(startCallOut); // Here!
}
在此Java代码中,如果第一个参数是手动输入到GWT应用HTML中的DIV的ID,则
CallOut
可以很好地工作,但是如果在Errai的页面模板上使用DIV,则将不起作用。任何想法为什么它不起作用? 最佳答案
在将模板添加到DOM之前,将调用@PageShowing
生命周期方法。从PageShowing
JavaDoc:
指示@Page
时应调用目标方法
它是其成员的小部件将要显示在
导航内容面板:小部件的@PageState
字段之后
已更新,并且在导航内容中显示之前
面板。
尝试改用@PageShown
。