Play 2.0.1 - Scala模板字符串拼接 + 可重用代码块

3

虽然只是一个小问题,但根据文档,我应该能够创建一个可重用的块。可能是我的缺乏Scala经验在影响我...

我有一个字符串列表传递到.scala.html文件中。这些字符串是没有".js"的javascript文件引用。

@jsFileWithExtension(file: String) = @{
  val newFile = file + ".js
}
@for(jsFile <- headJs) {
   <script src="/assets/javascripts/@jsFileWithExtension("@jsFile")"></script>
}

当前正在加载没有扩展名的js文件。

3个回答

3
为什么不直接添加一个 .js 后缀呢?
@for(jsFile <- headJs) {
   <script src="/assets/javascripts/@(jsFile).js"></script>
}

关键在于使用括号 () 包裹起来,否则 .js 看起来像是 play 的方法调用。 - Th 00 mÄ s

3

试试这个:

@jsFileWithExtension(file: String) = @{ file + ".js" }


@for(jsFile <- headJs) {
   <script src="/assets/javascripts/@jsFileWithExtension(jsFile)"></script>
}

您的js文件带扩展名需要返回一个值。目前它返回了Unit。 正如Daniel指出的那样,函数的参数不需要引号或魔法符号@


0

这个行不行:

@jsFileWithExtension(jsFile)

也就是说,假设这已经是Scala代码,jsFileWithExtension参数不需要加引号和@符号?


不,它没有 (至少我是这样的!) 我可能应该指出我尝试过的方法 :) - user375566

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接