Как создать компонент Vaadin 12 «iFrame», который можно сбросить на новое значение - PullRequest
0 голосов
/ 18 февраля 2019

Основываясь на Google, я обнаружил, что Vaadin 8 имеет хорошую поддержку "iFrame", используя класс с именем BrowserFrame "(например, https://vaadin.com/docs/v7/framework/components/components-embedded.html) или просто см. Ниже:

BrowserFrame browser = new BrowserFrame("Browser",
    new ExternalResource("http://demo.vaadin.com/sampler/"));
browser.setWidth("600px");
browser.setHeight("400px");
layout.addComponent(browser);

Однако этоне существует в Vaadin 12. Существует ли рекомендуемый способ создания компонента iFrame в Vaadin 12. До сих пор я взломал его, создав html-компонент vaadin12, который позволяет мне помещать в него любой старый html следующим образом:

MainApp.iFrameHelp = new Html("<iframe src=\"https://docs.readthedocs.io/en/latest/intro/getting-started-with-sphinx.html/intro/getting-started-with-sphinx.html\"></iframe>");

. Но, если это «единственный / правильный» способ сделать это в Vaadin 12, то как я могу заставить этот html-компонент «обновляться» с новой страницей (я заметил, что однаждыКомпонент html создан, метода setValue для сброса html на новое значение не существует. Более того, даже если вы сделаете что-то вроде «myHtmlComponent = new Html (...)», похоже, он НЕ обновляет конечный интерфейс.... (По крайней мере, не в моем коде.) Мысли?

1 Ответ

0 голосов
/ 19 февраля 2019

Компонент IFrame представлен в Vaadin 13: https://github.com/vaadin/flow/pull/4898. Vaadin 13 в настоящее время находится в бета-версии и будет окончательным в начале марта.

В этом не должно быть ничегокомпонент, который также не работает вместе с Vaadin 12, так что вы, скорее всего, просто скопируете реализацию из https://github.com/vaadin/flow/blob/master/flow-html-components/src/main/java/com/vaadin/flow/component/html/IFrame.java в свой собственный проект Vaadin 12 и будете использовать ее как есть.

...