标签规范内的玉变量渲染

Mas*_*iar 1 node.js pug

我有一个像这样的玉页:

table
    th Site Name
    th Deadline
    th Delete Transaction

    - if (transactions != null)
        each item in transactions
            tr
                td= item.item_name
                td
                    span(id='countdown' + item.timeout + ')= item.timeout
                td
                    span(style='cursor: pointer;', onclick='deleteTransaction("=item.uniqueId")')= "X"

            button(id='confirmButton', onclick='confirm();')Confirm
Run Code Online (Sandbox Code Playgroud)

正如您在span属性中看到的那样,我尝试以两种不同的方式放置局部变量,但它不起作用.关于第一种方式,我收到一个token ILLEGAL错误,而第二种方式只是在我的JavaScript中写入类似的东西deleteTransaction("=item.uniqueId");.我知道答案是非常愚蠢的,但是Jade doc(即使它有所改进)也一次又一次没有帮助我.

谢谢

Jor*_*ing 6

引用文档:

假设我们有本地用户{ id: 12, name: 'tobi' },我们希望创建一个href指向"/ user/12" 的锚标记,我们可以使用常规的javascript连接:

a(href='/user/' + user.id)= user.name
Run Code Online (Sandbox Code Playgroud)

人机工程学:

span(id='countdown' + item.timeout)= item.timeout

// ...

span(style='cursor: pointer;', onclick='deleteTransaction("' + item.uniqueId + '")')= "X"
Run Code Online (Sandbox Code Playgroud)

再次引用:

或者我们可以使用jade的插值,我添加了因为使用Ruby或CoffeeScript的每个人似乎认为这是合法的js ..:

a(href='/user/#{user.id}')= user.name
Run Code Online (Sandbox Code Playgroud)

所以:

span(style='cursor: pointer;', onclick='deleteTransaction("#{item.uniqueId}")')= "X"
Run Code Online (Sandbox Code Playgroud)

作为您将在编程生活中每天使用的一般提示:平衡您的报价.就像括号和括号一样,每个引号必须打开一个新的引号或关闭一个已经打开的引号(相同类型,即双引号关闭双引号,单引号关闭单引号).借用你的代码:

span(id='countdown' + item.timeout + ')= item.timeout
  //                                 ^
  //                                 |
  // What's this guy doing? ---------+
Run Code Online (Sandbox Code Playgroud)

尽管Jade是一种模板语言,也许不是一种"真正的"编程语言,但就像HTML(也不是编程语言)一样,这条规则对你很有帮助.