не могу загрузить HTML-текст в тег Div с помощью JQuery в Vaadin 7 - PullRequest
0 голосов
/ 18 января 2019

Большое спасибо за вашу помощь и поддержку заранее. Используя vaadin 7 AbstractJavaScriptComponent, я пытаюсь загрузить HTML-фрагмент вместо тега div, и на экране ничего не отображается. Не смог понять причину. Пожалуйста, помогите!

window.de_vaadin_ui_myapp_MyWidget = function() {

$(document).ready(function(){
$("#content").load("html/NewFile.html");
});

var element = this.getElement();
this.onStateChange = function() {
    element.innerHTML ="<div id=\"content\"></div>";
};

};

the html file is located in the package de.vaadin.ui.myapp.MyWidget.html

1 Ответ

0 голосов
/ 21 января 2019

Есть несколько вещей, которые могут пойти не так здесь. Было бы полезно, если бы вы описали какие-либо соответствующие сообщения журнала или что-то подобное.

Я вижу несколько разных причин, почему это не работает для вас:

  1. Логика разъема вообще не работает, например, из-за опечатки в значении аннотации @JavaScript или имени функции соединителя (т.е. de_vaadin_ui_myapp_MyWidget). Вы можете проверить, действительно ли он загружен, добавив, например, console.log(this.getElement()) внутри функции верхнего уровня.
  2. HTML запрашивается с неверного URL. Проверьте инспектор сети в инструментах разработчика браузера, чтобы увидеть, какой абсолютный URL действительно загружен и возвращает ли он ожидаемый результат или только, например. ответ 404. Если это проблема, вы можете переместить файл HTML в другое место или изменить относительный URL-адрес, переданный на load, на что-то
  3. Содержимое расширенного элемента сбрасывается каждый раз, когда происходит событие изменения состояния, поскольку innerHTML переназначается. Это может помочь переместить оператор, который назначает innerHTML, за пределы обработчика onStateChange, чтобы он выполнялся только один раз во время инициализации. Это также может вызвать ситуацию, когда $("#content") запускается еще до создания div, в результате чего он не может найти целевой элемент.
...