【问题标题】:node, express, jade: How to create select options from a hash节点、快递、玉:如何从哈希中创建选择选项
【发布时间】:2013-06-22 12:07:37
【问题描述】:

我刚刚开始玩 node、express 和玉。我尝试在翡翠模板中做这样的事情:

my-options = {"this": "something", "that": "something else", "those": "more stuff", "these": "also included"}

form
  select(name="myselection")
    each option, key in my-options
      option(value="#{key}") option

但是,我得到的只是一个 500 服务器错误,这根本没有帮助。我在这里做错了什么?任何帮助将不胜感激。

更新 我刚刚发现,玉模板本身不能包含变量定义。因此,my_options 哈希需要在相应的 router.js 文件中定义,并作为参数传递给相应的result.render() 函数。

【问题讨论】:

    标签: node.js express pug


    【解决方案1】:

    您的第一行必须是可执行的 JS 代码,并且“my-options”不是有效的 JS 变量名。

    【讨论】:

    • 感谢@JohnSz,所以我将此行更改为var my_options = ...。但我仍然收到这些错误
    • 还有:option(value="#{key}") #{option}
    • 再次感谢。遗憾的是,这似乎不是解决方案。
    • 我已经在 Express 3.2.5 和最新的翡翠上成功运行了这个:var express = require("express"); var app = express(); var port = 3000; app.set("port", port); app.set("views", __dirname + "/views"); app.set("view engine", "jade"); app.get("/test", function (req, res) { res.render('jadeSelect'); }); app.listen(port); 和翡翠文件my_options = {"this": "something", "that": "something else", "those": "more stuff", "these": "also included"} form select(name="myselection") each option, key in my_options option(value="#{key}") #{option}
    • 干杯约翰!我认为关键是,不要像我一样使用换行符来格式化变量代码。正如@iheartramen 建议的那样,可能不允许多行声明。
    【解决方案2】:

    实际上,您可以在 Jade 中定义变量,您只需以连字符开头即可。行首的- 告诉 Jade 执行后面的代码而不输出它。行首的= 告诉 Jade 执行后面的代码并在完成后输出。

    例如,如果你这样做

    - var foo = "bar"
    = 2+2
    p #{foo}
    

    你会在你的页面源代码中看到这个:

    4
    <p>bar</p>
    

    【讨论】:

    • 也谢谢你!我已经阅读了关于翡翠变量的这种可能性。但是,当我使用稍微复杂一点的变量结构进行测试时,出于可读性原因,我将其延伸到视图行上,但我无法使其工作(在每行添加一个连字符)...
    • 你能举一个更复杂但行不通的变量构造的例子吗?
    • 当然,我只是想声明一些类似结构的关联数组,例如- var my_options = {key1: "value1", - key2: "value2", - ... - keyX: "valueX"};D*mn,它没有在评论部分显示换行符......所以每个键值对出于可读性原因,位于新行。
    • 啊,我明白你的意思了。是的,该死的 Jade 就是不支持多行声明。
    猜你喜欢
    • 1970-01-01
    • 2022-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多