我正在编写一个基于 leaflet.browser.print 的自定义组件,我有一个关于如何保持对我在 javascript 中初始化的某些对象的访问的问题。
正如您在下面的代码中看到的,我实例化了 LBrowserPrintImport 类并执行初始化变量bp 的脚本。该变量应该再次在 java 函数 print() 中使用。但我没有找到任何有关如何存储它的信息。
你有什么想法?
到目前为止,这是我的代码:
@NpmPackage(value = "leaflet.browser.print", version = "2.0.2")
@JsModule("leaflet.browser.print/dist/leaflet.browser.print.min.js")
public class LBrowserPrintImport extends Component {
private static final long serialVersionUID = 1L;
public LBrowserPrintImport(
final LMap map,
final LBackendOptions backendOptions
) {
super();
getElement().executeJs("let bp = L.browserPrint($0, $1);", "map", "parameters");
// How to store bp here?
}
public void print() {
getElement().executeJs("bp.print(L.BrowserPrint.Mode.Landscape());");
}
}
您可以将变量附加到某个元素,例如组件的根元素或全局对象,例如
window
:executeJs("window.bp = L.browserPrint($0, $1);