Ajax Liftweb:如何执行一个";斯卡拉“;提交文本后的方法
我知道我可以通过以下方式运行提交ajaxText的脚本:Ajax Liftweb:如何执行一个";斯卡拉“;提交文本后的方法,ajax,scala,lift,onsubmit,Ajax,Scala,Lift,Onsubmit,我知道我可以通过以下方式运行提交ajaxText的脚本: SHtml.ajaxText(myVar,(str)=>myVar=str,“onsubmit”->“myScript();”) 我想做的是执行scala方法 显然 SHtml.ajaxText(myVar,(str)=>myVar=str,“onsubmit”->myMethod) 它不起作用 有什么办法可以做到这一点吗?我找到了一个办法,但不是很干净 由于函数(str)=>myVar=str也在提交时执行,所以我就是这么做的: d
SHtml.ajaxText(myVar,(str)=>myVar=str,“onsubmit”->“myScript();”)
我想做的是执行scala方法
显然
SHtml.ajaxText(myVar,(str)=>myVar=str,“onsubmit”->myMethod)
它不起作用
有什么办法可以做到这一点吗?我找到了一个办法,但不是很干净 由于函数
(str)=>myVar=str
也在提交时执行,所以我就是这么做的:
def f(str:String):JsCmd = {
myVar = str
myMethod()
SetHtml("msg_div",<span> method executed </span>)
}
SHtml.ajaxText(myVar, (str) => f(str))
def(str:String):JsCmd={
myVar=str
myMethod()
SetHtml(“msg_div”,执行的方法)
}
SHtml.ajaxText(myVar,(str)=>f(str))
这样,每次我在ajaxText中提交修改时,都会执行myMethod
,但我必须从f
函数返回一些JsCmd
如果你能找到更好的方法,请告诉我。我找到了一种方法,但不是很干净 由于函数
(str)=>myVar=str
也在提交时执行,所以我就是这么做的:
def f(str:String):JsCmd = {
myVar = str
myMethod()
SetHtml("msg_div",<span> method executed </span>)
}
SHtml.ajaxText(myVar, (str) => f(str))
def(str:String):JsCmd={
myVar=str
myMethod()
SetHtml(“msg_div”,执行的方法)
}
SHtml.ajaxText(myVar,(str)=>f(str))
这样,每次我在ajaxText中提交修改时,都会执行myMethod
,但我必须从f
函数返回一些JsCmd
如果你找到更好的方法,请告诉我。我觉得你的答案很好,但是如果你不想在执行后发生任何事情,你不必让
JsCmd
做任何事情。例如:
SHtml.ajaxText(myVar, (str) => {
myVar = str
myMethod()
JsCmds.Noop
})
其中
JsCmds.Noop
,与在普通JavaScript中发出return
几乎相同,因此函数返回时不做任何操作。为了简洁起见,我将代码块内联,但是您也可以像使用(str)=>f(str)
那样,让您的方法返回JsCmds.Noop
您的答案在我看来很好,但是如果您不想在执行后发生任何事情,您不必让JsCmd
做任何事情。例如:
SHtml.ajaxText(myVar, (str) => {
myVar = str
myMethod()
JsCmds.Noop
})
其中
JsCmds.Noop
,与在普通JavaScript中发出return
几乎相同,因此函数返回时不做任何操作。为了简洁起见,我将代码块内联,但您也可以像使用(str)=>f(str)
那样,让您的方法返回JsCmds.Noop
很高兴我能继续提供帮助。如果你还有其他问题,尽管问吧,我们会尽力帮助你。很高兴我能继续提供帮助。如果您还有其他问题,请提问,我们会尽力帮助您。顺便说一下,您可以将(str)=>f(str)
缩短为str=>f(str)
,只需计划f
。(实际上你甚至可能不需要
。如果你写def
(或者val
)f={str:String=>
…顺便说一句,你可以把(str)=>f(str)
缩短为str=>f(str)
,只计划f
。(实际上,您甚至可能不需要。def
(或val
)f={str:String=>
。)。。。