Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.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/JSNI对此表示欢迎。不替换为对实例的引用_Gwt_Jsni - Fatal编程技术网

GWT/JSNI对此表示欢迎。不替换为对实例的引用

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;

我在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;
}-*/;

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/Res‌​ponse;)(response);
};

明白了:您需要在本机代码中获取对“this”的引用,然后在“function”块中使用它:var theInstance=this;然后request.onOpen=function(response){theInstance@com.mdarveau.fnp.client.client::onOpen(Lcom/mdarveau/fnp/client/response;)(response);};请将您的发现作为答案发布,以便其他人可以从中受益。这正是我所寻找的!明亮的