来自GWT UiBinder中的本机元素属性的JSNI

时间:2014-06-03 22:20:38

标签: gwt uibinder jsni

是否可以将本机元素的事件处理属性绑定到窗口小部件方法?

<g:HTMLPanel>
  <div onclick="{???}">Hello</div>
</g:HTMLPanel>

1 个答案:

答案 0 :(得分:0)

是的。

例如,在MyWidget.ui.xml

<!DOCTYPE ui:UiBinder SYSTEM 'http://dl.google.com/gwt/DTD/xhtml.ent'>
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' 
    xmlns:g='urn:import:com.google.gwt.user.client.ui'>
  <ui:style>
  </ui:style>

  <g:HTMLPanel>
    <div onclick="myFunction()"> DIV EXAMPLE </div>
  </g:HTMLPanel>  

</ui:UiBinder> 

例如在您的html中,您会介绍(例如在<head>标记内):

<script> 
    function myFunction() {
      alert("Bye");
    }
  </script>

以及GWT EntryPoint

public class ExampleGWT implements EntryPoint {

  public void onModuleLoad() {
    MyWidget m = new MyWidget();
    RootPanel.get().add(m);
  }

}

您将能够看到&#34;再见&#34;警报

我想你有理由这样做,但在我看来,这不是使用GWT的最佳方式((你不能调试,你错过了GWT&#39;编译器优化,你不能利用UiBinder和Composite正确......)。

如果您向我们提供有关您的场景的更多详细信息,我们可以向您指出更好的方向(有一些工具,如GQuery,它允许您在没有样板代码的情况下快速绑定事件)。

谢谢!