我有一个像这样的Jade页面:
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
正如您在span
属性中看到的那样,我尝试以两种不同的方式放置局部变量,但它不起作用。关于第一种方式,我收到token ILLEGAL
错误,而第二种方法只是在我的JavaScript中写入类似deleteTransaction("=item.uniqueId");
的内容。我知道答案是非常愚蠢的,但是Jade doc(即使它有所改进)一次又一次没有帮助我。
由于
答案 0 :(得分:6)
引用the docs:
假设我们有用户本地
{ id: 12, name: 'tobi' }
,我们希望创建一个锚点标记,href
指向“/ user / 12”,我们可以使用常规的javascript连接:a(href='/user/' + user.id)= user.name
埃尔戈:
span(id='countdown' + item.timeout)= item.timeout
// ...
span(style='cursor: pointer;', onclick='deleteTransaction("' + item.uniqueId + '")')= "X"
再次引用:
或者我们可以使用jade的插值,我添加了因为使用Ruby或CoffeeScript的每个人似乎认为这是合法的js ..:
a(href='/user/#{user.id}')= user.name
所以:
span(style='cursor: pointer;', onclick='deleteTransaction("#{item.uniqueId}")')= "X"
作为您将在编程生活中每天使用的一般提示:平衡您的报价。就像括号和括号一样,每个引号必须打开一个新的引号或关闭一个已经打开的引号(相同类型,即双引号关闭双引号,单引号关闭单引号)。借用你的代码:
span(id='countdown' + item.timeout + ')= item.timeout
// ^
// |
// What's this guy doing? ---------+
尽管Jade是一种模板语言,也许不是一种“真正的”编程语言,但就像HTML(也不是编程语言)一样,这条规则对你很有帮助。