Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GWT UiBinder中本机元素属性的JSNI_Gwt_Uibinder_Jsni - Fatal编程技术网

GWT UiBinder中本机元素属性的JSNI

GWT UiBinder中本机元素属性的JSNI,gwt,uibinder,jsni,Gwt,Uibinder,Jsni,是否可以将本机元素的事件处理属性绑定到小部件方法 <g:HTMLPanel> <div onclick="{???}">Hello</div> </g:HTMLPanel> 你好 是的 例如,在MyWidget.ui.xml <!DOCTYPE ui:UiBinder SYSTEM 'http://dl.google.com/gwt/DTD/xhtml.ent'> <ui:UiBinder xmlns:ui='urn:ui

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

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

你好
是的

例如,在
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> 
在您的
GWT
入口点中:

public class ExampleGWT implements EntryPoint {

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

}
您将能够看到“再见”警报

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

如果您向我们提供有关您的场景的更多详细信息,也许我们可以为您指明更好的方向(有GQuery之类的工具,它允许您在不使用样板代码的情况下快速绑定事件)


谢谢!

我可以想出一个解决办法,但这有点麻烦。另外,您需要处理多个小部件实例,因此突然您必须为您的JS方法传递某种令牌或唯一名称:(
public class ExampleGWT implements EntryPoint {

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

}