3

我正在尝试 Jade(通过 Scalate)并且遇到了一个我找不到答案的错误。(或者,至少没有看到。)我使用 BlueGriffon 模拟了一个表单(我已经编写 HTML 代码已经有好几年了……)并将生成的 HTML 放入 Aarron Powel 的 HTML-JADE 转换器中。这是我的 .jade 模板文件中的顶部或翻译:

br
表单(方法='POST',操作='/account/create',名称='userAccountDetails')
  | 用户名:
  input(required='required', name='username', type='text')

etc., etc.,

尝试运行嵌套的 scala 应用程序会生成此错误:

org.fusesource.scalate.InvalidSyntaxException: )' expected but,' 在 org.fusesource.scalate.scaml.ScamlParser.parse(ScamlParser.scala:375) 的 org.fusesource.scalate.jade.JadeCodeGenerator.generate(JadeCodeGenerator.scala:38) 的 5.19 发现)

它似乎不喜欢命令分隔的属性,但我不知道为什么。此外,在堆栈跟踪剪辑中,它似乎正在拉入一个 Scaml 解析器,即使该文件具有 .jade 扩展名。

有人可以指出我正确的方向吗?谢谢。

4

1 回答 1

10

对于发现自己的人来说,这个问题(至少对我来说)似乎是由于 JADE 的 Scala/Scalatra 和 JavaScript/NodeJS 实现之间的语法差异造成的。幸运的是,我对 JADE 示例的搜索出现了后者——无论是在实用程序方面,还是在论坛问答方面——都表明逗号的必要性。

解决方案:删除逗号,一切正常:

!!!
h2 新帐户设置
br
form(method='PUT' action='/account/create')
...

编辑:更准确地说,差异实际上在于由 Scalatra 集成的 Scalate(Scala 模板引擎)。(可能还有一些其他基于 JADE 的 scala 库遵循原始语法。)

于 2013-03-04T00:06:36.790 回答