2016-04-04 3 views
0

У меня есть класс GWT с двумя функциями JavaScript JSNI. Я хочу, чтобы вызвать одну функцию внутри другой, как это:GWT - Как вызвать функцию JavaScript внутри другой функции JavaScript

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

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

В этом случае, при выполнении Function2 я получаю "Function1 is not defined".

Имейте в виду, что я не хочу, чтобы embeed Function1 внутри Function2 кода, мне нужны две различные функции JSNI (так что я могу назвать Function1 из нескольких функций).

спасибо.

ответ

0

изменить два метода, чтобы быть static также.
вы можете просто вызвать любой метод из вашего JSNI кода, как это:

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

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

информацию можно найти here.

+0

вы также можете вызвать нон статическую функцию –

+0

, то вы должны использовать 'this' – Tobika

+0

Спасибо вам обоим, это как раз то, что я искал. – 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); 
}-*/; 
}