2013-09-11 1 views
1

Я только начинаю с GWTQuery и пытаюсь обернуть голову вокруг функции load(). Рассмотрим:GWTQuery load() заменяет элемент

public void onModuleLoad() { 
    SimplePanel sp = new SimplePanel(); 
    sp.getElement().setId("stuff"); 
    RootLayoutPanel root = RootLayoutPanel.get(); 
    root.add(sp); 

    $("#stuff").load("/hello.html"); 
} 

Если я бегу выше, пустой div блок для элемента SimplePanel получает заменить с содержанием hello.html. Другими словами, он попадает в блок body, а div исчезает из DOM. Что я хочу для блока div до содержитhello.html. Я работал над этим, добавив еще один временный SimplePanel в качестве ребенка div id="stuff" и позвонив по телефону load(). Он работает по своему желанию. Но я чувствую, что у меня нет чего-то фундаментального. Есть ли способ сделать это без броска SimplePanel?

+0

Я запустил этот код в своем проекте и работал как expecetd. Материал div # не был заменен содержимым hello.html. У вас все еще есть эта проблема? – fascynacja

ответ

0

Ваши закодированные работы в порядке, GQuery load() заменяет содержимое элемента материалом, полученным с сервера.

Реализация load(), как вы можете видеть в Ajax.java, первый очистить возвращенную строку извлекая <html><head><body> и <script> тегов, а затем обернуть содержимое в <div>, и, наконец, пустое содержание целевой панели ($(#stuff) в вашем случае), и добавляет новый созданный <div>.

Я проверил ваш код с последним снимком и со стабильными версиями, в какой версии вы используете?