从Scalatra中的Jade模板访问Flash地图

时间:2013-04-04 16:14:37

标签: pug scalatra scalate

我正在使用Scalatra创建应用程序,我正在使用Scalate / Jade进行模板化。我尝试为我的应用程序添加Flash支持。我将FlashMapSupport混合到我的Servlet中,我可以访问flash帮助器。无论如何,如果我试图从布局中获取它,我会收到以下错误:

[error] /home/ytaras/projects/scala/scalatra-shopping-cart/target/scala-2.10/src_managed/main/scalate/templates/layouts/default_jade.scala:27: not found: value flash
[error]                         flash.get("alert").foreach
[error]                         ^
[error] one error found

我能做的最好的办法就是使用向下转换来渲染上下文:

  - context.asInstanceOf[org.scalatra.scalate.ScalatraRenderContext].flash.get("alert").foreach
    - alert =>
    .alert
      .button(type="button" class="close" data-dismiss="alert") ×
      = alert

无论如何,这绝对不是一个最漂亮的解决方案。我可以做些什么来修复它,或者它是Scalate / Jade代码中的一个问题?

1 个答案:

答案 0 :(得分:1)

我刚刚使用Jade完成了一个非常简单的Scalatra应用程序,它似乎按照文档工作。

编辑:我一直在使用早期版本的Scalatra中生成的应用。

在Scalatra 2.2.0中,我们在g8骨架中添加了预编译的Scalate模板,默认情况下可以提高生产速度。 <{1}}中存在错误,导致闪存上下文丢失。

将此添加到您的project/build.scalahttps://gist.github.com/anonymous/ff40cdde1a1105970f50#file-build-scala-L37-L39

我们会暂时修复g8模板。抱歉,麻烦。