【问题标题】:SCALA Lift - Missing parameter type for expanded functionSCALA Lift - 缺少扩展功能的参数类型
【发布时间】:2011-10-25 22:50:20
【问题描述】:

我有以下表格:

<form class="lift:form.ajax">

    <div class="lift:StreamInput">
        <input type="hidden" name="user" value="USER" />
        <input type="hidden" name="room" value="ROOM" />
        <input type="hidden" name="path" value="PATH" />
        <input type="hidden" name="level" value="LEVEL" />
    </div>

    <input type="submit" value="" />

</form>

进入:

object StreamInput {

    case class StreamItem(

        user: String, 
        path: String, 
        level: String, 
        room: String

    )

    def render = {

        var user = ""
        var path = ""
        var level = ""
        var room = ""

        def process(): JsCmd = {

            var message = StreamItem(user, path, level, room)
            StreamServer ! message

        }

        "name=user" #> SHtml.onSubmit(user => user = _)
        "name=path" #> SHtml.onSubmit(path => path = _)
        "name=level" #> SHtml.onSubmit(level => level = _)
        "name=room" #> (SHtml.onSubmit(room => room = _) ++ SHtml.hidden(process))

    }

}

编译时出现以下错误:

"Missing parameter type for expanded function ((x$1) => user = x$1)"
"name=user" #> SHtml.onSubmit(user => user = _)
                                             ^
"Missing parameter type for expanded function ((x$2) => user = x$2)"
"name=path" #> SHtml.onSubmit(path => path = _)
                                             ^
"Missing parameter type for expanded function ((x$3) => user = x$3)"
"name=level" #> SHtml.onSubmit(level => level = _)
                                                ^
"Missing parameter type for expanded function ((x$4) => user = x$4)"
"name=room" #> SHtml.onSubmit(room => room = _)
                                             ^

我已经在谷歌上搜索了一段时间,似乎找不到适合我特定情况的解释。

不知道我错过了什么,非常感谢任何帮助,在此先感谢:)

【问题讨论】:

    标签: ajax scala lift


    【解决方案1】:

    SHtml.onSubmit 接受回调 (String) ⇒ AnyString 是新提交的字段值。在您的情况下,您希望提供一个 setter 方法,将您的 vars 更改为该新值。将参数更改为

    SHtml.onSubmit(user = _)
    

    或展开

    SHtml.onSubmit(text => user = text)
    

    (Documentation)

    【讨论】:

    • 感谢您的帮助,错误现已消失,但我收到了与此位相关的最后一个错误:“++ SHtml.hidden(process))”、“++ 不是成员(scala.xml.NodeSeq) => scala.xml.NodeSeq"
    • 不确定你是否应该使用onSubmit。查看simply.liftweb.net/index-4.8.html#toc-Section-4.8,其中使用了SHtml.text。还要记住将 CSS 转换与 &amp; 连接起来。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-29
    • 2020-08-04
    相关资源
    最近更新 更多