2016-04-04 14 views
0

Ich habe eine GWT-Klasse mit zwei JavaScript-Funktionen JSNI. Ich möchte eine Funktion in einem anderen nennen, wie folgt aus:GWT - So rufen Sie eine JavaScript-Funktion in einer anderen JavaScript-Funktion

public class MyClass 
{ 
    public native void Function1() 
    /*-{ 
    console.log("Function 1"); 
    }-*/; 

    public native void Function2() 
    /*-{ 
    Function1(); 
    }-*/; 
} 

In diesem Fall, wenn Function2 Ausführung ich erhalte "Function1 is not defined".

Beachten Sie, dass ich nicht will Function1 innerhalb Function2 Code embeed, ich brauche zwei verschiedene JSNI Funktionen (so kann ich Function1 von mehreren Funktionen aufrufen).

Vielen Dank.

Antwort

0

ändern Sie die beiden Methoden zu static auch.
können Sie einfach jede Methode von Ihrem JSNI Code wie folgt nennen:

public class MyClass 
{ 
    public static native void Function1() 
    /*-{ 
    console.log("Function 1"); 
    }-*/; 

    public static native void Function2() 
    /*-{ 
    @xxx.xxxxx.xxxx.MyClass::Function1(); 
    }-*/; 
} 

weitere Informationen here gefunden werden können.

+0

Sie können auch eine nicht statische Funktion aufrufen –

+0

dann Sie zu verwenden haben 'this' – Tobika

+0

Danke beide, das ist genau das, was ich suchte. – fsinisi90

0
package mypackage; 

public class Account { 
    private int balance = 0; 

public int add(int amt) { 
     balance += amt; 
    } 

public native void exportAdd() /*-{ 
    var that = this; 
    [email protected]::add(I)(10); 
}-*/; 
} 
Verwandte Themen