GWT/JSNI对此表示欢迎。不替换为对实例的引用
我在GWT类中有以下代码:GWT/JSNI对此表示欢迎。不替换为对实例的引用,gwt,jsni,Gwt,Jsni,我在GWT类中有以下代码: private native JavaScriptObject getRequest() /*-{ var request = ...; request.onOpen = function(response) { this.@com.mdarveau.fnp.client.Client::onOpen(Lcom/mdarveau/fnp/client/Response;)(response); }; return request;
private native JavaScriptObject getRequest() /*-{
var request = ...;
request.onOpen = function(response) {
this.@com.mdarveau.fnp.client.Client::onOpen(Lcom/mdarveau/fnp/client/Response;)(response);
};
return request;
}-*/;
void onOpen( Response response ) {
Window.alert( "Got response " + response );
}
但是,当调用与request.onOpen
关联的函数时,“this variable”不会替换为对已编译GWT类的引用。通过使用chrome javascript控制台和调试器,我看到它看起来像是对请求
对象的引用
知道为什么吗?我还加载了jquery,是否存在冲突?明白了:您需要在本机代码中获取对该的引用,然后在
函数
块中使用它:
var theInstance = this;
然后
request.onOpen = function(response) {
theInstance.@com.mdarveau.fnp.client.Client::onOpen(Lcom/mdarveau/fnp/client/Response;)(response);
};
明白了:您需要在本机代码中获取对“this”的引用,然后在“function”块中使用它:var theInstance=this;然后request.onOpen=function(response){theInstance@com.mdarveau.fnp.client.client::onOpen(Lcom/mdarveau/fnp/client/response;)(response);};请将您的发现作为答案发布,以便其他人可以从中受益。这正是我所寻找的!明亮的