Ссылка динамической функции JSNI в GWT - PullRequest
2 голосов
/ 24 января 2012

Я хотел бы вызвать произвольную функцию js из gwt.Имя функции будет внутри переменной имени функции.Примерно так:

private static native String execute(String functionName, JavaScriptObject data) /*-{
    return $wnd.functionName(data);
}-*/;

Я предполагаю, что нечто подобное возможно, но как создать переменную fn для представления моей произвольной функции имени функции.

private static native String execute(JavaScriptObject fn, JavaScriptObject data) /*-{
    return fn(data);
}-*/;

1 Ответ

7 голосов
/ 24 января 2012

Если вам нужно вызвать функцию по имени, вам нужно сделать что-то вроде этого:

private static native String execute(String functionName,JavaScriptObject data)/*-{
     $wnd[functionName](data);

}-*/;

Чтобы получить ссылку на функцию, вам нужно использовать JSNI следующим образом:

private static native JavaScriptObject getFunction(String functionName)/*-{
    return  $wnd[functionName];

}-*/;
...