2011-10-25 34 views
0

我有以下形式:SCALA电梯 - 缺少参数类型扩展功能

<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 = _) 
              ^

我一直在谷歌搜索了一段时间,似乎无法找到适合我的特定情况的解释。

不知道我错过了什么,任何的帮助深表感谢,感谢提前:)

回答

0

SHtml.onSubmit采用了回调(String) ⇒ AnyString是该字段的新提交值。在你的情况下,你想提供一个setter方法,将你的var改为新的值。参数更改为

SHtml.onSubmit(user = _) 

或扩大

SHtml.onSubmit(text => user = text) 

Documentation

+0

感谢您的帮助,这些错误现在已经走了,但我recieving与此相关的位最后一个错误:“ ++ SHtml.hidden(process))“,”++不是(scala.xml.NodeSeq)=> scala.xml.NodeSeq的成员“ – jhdevuk

+0

不确定你应该使用'onSubmit'。查看http://simply.liftweb.net/index-4.8.html#toc-Section-4.8其中使用了'SHtml.text'。还要记住用'&'连接CSS变换。 – Debilski