0

JSNI を Errai で直接動作させるのは難しいと思います。たとえば、次のコードを見てください。

private static native void _createCallOut(JavaScriptObject callout)/*-{
    $wnd.hopscotch.getCalloutManager().createCallout(callout);
}-*/;

この JSNI が rooting と呼ばれる場所

@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 コードCallOutは、最初のパラメーターが GWT アプリの HTML に手動で入力された DIV の ID である場合は正常に機能しますが、Errai のページ テンプレートにある場合は機能しません。機能しない理由はありますか?

4

2 に答える 2

2

ライフサイクル メソッドは、テンプレートが DOM に追加される@PageShowingに呼び出されます。JavaDocから:PageShowing

メンバーであるウィジェットがナビゲーション コンテンツ パネルに表示されようとしているときに、ターゲット メソッドを呼び出す必要があることを示します@Page 。ウィジェットの@PageStateフィールドが更新された後、ナビゲーション コンテンツ パネルに表示される前です。

@PageShown代わりに使用してみてください。

于 2013-07-31T18:11:01.490 に答える
1

@PageShowingまたはの代わりに動作させることができましたが、 or の@PageShown内部では:onAttach@Page

@Override
protected void onAttach() {
      super.onAttach();
      // Works fine inside
    } 
于 2013-08-01T06:47:15.593 に答える