Scala lift CalendarMonthView示例使用lift 1.1-SNAPSHOT失败

Scala lift CalendarMonthView示例使用lift 1.1-SNAPSHOT失败,scala,lift,Scala,Lift,新手scala/lift问题: 我查看了CalendarMonthView示例: 与电梯1.1-M6和它编译和工作 当我尝试将示例迁移到Lift 1.1-SNAPSHOT时,AnonFunc的签名似乎已从类JsRaw更改为JsCmd(这是一个特性) 编译器在此失败: def itemClick=Full(AnonFunc(“elem,param”,JsCmd(“alert('itemClick'+param+'-'+elem.nodeName)”)) 未找到:值JsCmd 我错过什么了吗

新手scala/lift问题:

我查看了CalendarMonthView示例:

与电梯1.1-M6和它编译和工作

当我尝试将示例迁移到Lift 1.1-SNAPSHOT时,AnonFunc的签名似乎已从类JsRaw更改为JsCmd(这是一个特性)

编译器在此失败:

def itemClick=Full(AnonFunc(“elem,param”,JsCmd(“alert('itemClick'+param+'-'+elem.nodeName)”))

未找到:值JsCmd

我错过什么了吗

问候
Paul

尝试使用net.liftweb.http.js.JE.JsRaw代替JsCmd:

def itemClick = Full(AnonFunc("elem, param", JsRaw("alert('itemClick' + param + '-' + elem.nodeName)")))

我不确定这是否会通过AnonFunc的elem和param,但我相信是这样的,我在子项目中发现了CalendarMonthView示例的新的Lift 1.1-SNAPSHOT实现

/电梯模块/电梯小部件

还有其他令人印象深刻的小部件示例:-)

最好的方式是通过以下方式获得整个liftweb回购:


git克隆git://github.com/dpp/liftweb.git

此问题有两种解决方案:

  • 使用JsCmds jsExp到JsCmd转换器
  • 创建一个新的JsCmd对象
  • 为了说明这两个示例,假设您的原始命令是:

    def dayClick = Full(AnonFunc("elem, param", JsRaw("alert('day was clicked')")))
    
    转换器的工作原理是:

    import net.liftweb.http.js.JsCmds.jsExpToJsCmd
    def dayClick = Full(AnonFunc("elem, param", JsRaw("alert('day was clicked')"))) 
    
    import net.liftweb.http.js.JsCmd
    def dayClick = Full(AnonFunc("elem, param",
                                 new JsCmd("alert('day was clicked')"))) 
    
    新的命令是:

    import net.liftweb.http.js.JsCmds.jsExpToJsCmd
    def dayClick = Full(AnonFunc("elem, param", JsRaw("alert('day was clicked')"))) 
    
    import net.liftweb.http.js.JsCmd
    def dayClick = Full(AnonFunc("elem, param",
                                 new JsCmd("alert('day was clicked')"))) 
    

    当然,这些并不是完整的导入列表,只是有问题的更改所需的导入。

    Aaron,谢谢您的评论。我的问题是,Lift 1.1-SNAPSHOT中AnonFunc的签名已更改为:def apply(s:scala.Predef.String,j:net.liftweb.http.js.JsCmd):net.liftweb.http.js.JE.AnonFunc={/*编译代码*/}