2016-04-25 16 views
0

JSNIメソッド内からJavaメソッドを呼び出そうとしています。どんな種類のエラーも出ませんが、Window.alert()は決して呼び出されません。JSNIメソッドからJavaメソッドを呼び出す

package com.mywebsite.myapp.client; 

public class MyApp implements EntryPoint(){ 
/// Other stuff.... 
    public native void getToServer(String trainerName)/*-{ 
    $wnd.$.get("http://testdastuff.dev/trainerstats", { trainer: trainerName}) 
    .fail(function() { 
     $wnd.console.log("error"); 
    }) 
    .done(function(data) { 
      if(data == "noData"){ 
      alert("NO DATA"); 
      [email protected]::testJSNI()();   
    } 
    }); 
    }-*/; 


    public void testJSNI(){ 
     Window.alert("Working"); 
    } 

} 

「NO DATA」という警告が表示されているので、メソッドを呼び出す方法が間違っていることがわかります。これは静的な方法ではありません。

答えて

0

doneコールバックの内側には、this(これは別のものを指します)のコールバックがあります。

bindまたはローカル変数(var self = this)で保存する必要があります。

+0

この回答もご覧ください:http://stackoverflow.com/a/19915130/14955 – Thilo

+0

ありがとうございました。 – james

関連する問題