Вызов jquery от GWT JSNI - PullRequest
       2

Вызов jquery от GWT JSNI

0 голосов
/ 30 августа 2011

Я GWT человек с нулевым опытом работы. Извини за это. К сожалению, я сталкиваюсь с некоторыми функциями jquery, которые мне приходится использовать в моем проекте GWT.

<script type="text/javascript">
$(document).ready(function() {
    zingchart.render({
        'id' : 'g1',
        'width' : 500,
        'height' : 400,
        'dataurl' : 'scatter_minimal.txt'
    });
    });
</script>

<div class="g" id="g1"></div>

В моей нерешительной интуиции я собираюсь поверить, что

$(document).ready( ..)

следует перевести как GWT onModuleLoad(){ ....}, где onModuleLoad обеспечит готовность DOM, если я вызову эту функцию в onModuleLoad.

Но я не думаю, что следующее будет правильным ..

private static native void render() /*-{
  function() {
    zingchart.render(
      {
        'id' : 'g1',
        'width' : 500,
        'height' : 400,
        'dataurl' : 'scatter_minimal.txt'
      }
    );
  }
}-*/;

Как бы я написал код JSNI для определения функции, которую я мог бы вызывать из GWT?

1 Ответ

1 голос
/ 30 августа 2011

Если я правильно понимаю ваш вопрос, вам нужно просто:

private static native void render() /*-{
    zingchart.render(
      {
        'id' : 'g1',
        'width' : 500,
        'height' : 400,
        'dataurl' : 'scatter_minimal.txt'
      }
    );
}-*/;

Затем вы можете позвонить render() из своего кода GWT.render - это сама функция, GWT уже определяет ее для вас как функцию JavaScript при использовании синтаксиса JSNI.

Фон :

Запись function() {...} определяетанонимная функция - это не то, что вы хотите здесь (у вас не будет никакого способа сослаться на нее, потому что вы ее нигде не передаете).В jQuery вы передаете эту анонимную функцию непосредственно document.ready().

...