Vaadin flow 如何在vaadin12中调用JavaScript';什么方法?
在我的Vaadin 12项目中:Vaadin flow 如何在vaadin12中调用JavaScript';什么方法?,vaadin-flow,vaadin12,Vaadin Flow,Vaadin12,在我的Vaadin 12项目中: import com.vaadin.flow.component.dependency.HtmlImport import com.vaadin.flow.component.dependency.JavaScript import com.vaadin.flow.component.dependency.StyleSheet import com.vaadin.flow.component.html.Div import com.vaadin.flow.com
import com.vaadin.flow.component.dependency.HtmlImport
import com.vaadin.flow.component.dependency.JavaScript
import com.vaadin.flow.component.dependency.StyleSheet
import com.vaadin.flow.component.html.Div
import com.vaadin.flow.component.page.BodySize
import com.vaadin.flow.component.page.Page
import com.vaadin.flow.router.Route
import com.vaadin.flow.server.VaadinRequest
import org.slf4j.LoggerFactory
@Route(value = "myform")
@JavaScript("https://somejavascript.js")
class MyForm : Div() {
private val logger = LoggerFactory.getLogger(this::class.java)
init {
val request = VaadinRequest.getCurrent()
val myparam= request.getParameter("myparam")
logger.info("myparam = $myparam")
}
}
如您所见,我通过注释导入脚本:somejavascript.js
。
美好的
此脚本具有以下方法:myJavaScriptMethod
如何在我的Vaadin类中调用此方法
MyForm
?您可以使用以下代码调用JS函数myJavaScriptMethod()
:
UI.getCurrent().getPage().executeJavaScript("myJavaScriptMethod();");
您可以找到文档(奇怪的是,本文档仅针对vaadin版本11显示,但在vaadin 12和13中仍然以相同的方式显示)如何将一个字符串参数传递给此方法?根据链接的文档,您可以使用
UI.getCurrent().getPage().executeJavaScript(“myJavaScriptMethod($0);”,myStringVariable)执行此操作代码>我尝试以下方法:UI.getCurrent().getPage().executeJavaScript(“myJavaScriptMethod($0);”,myParam);-但是我得到错误:(ReferenceError):当javascript导入不起作用时,myJavaScriptMethod没有定义。我不确定是否在@JavaScript注释中提供外部js文件。你能下载所说的js脚本并将其放入你的静态资源文件夹吗?@JavaScript
注释的注释说明绝对URL确实有效。