Pug(以前称为 Jade)变量在 Anchor Href 内无法正常工作(插值)

Pug (formerly Jade) Variables Not Working (Interpolating) Correctly Inside Anchor Href

我在玩弄 Node 和 Express,我正在使用 Pug(以前称为 Jade)模板引擎来呈现我的 html。在我开始尝试将变量注入锚 link 的 href 之前,一切都运行良好。奇怪的是,如果我将我的 Express 应用程序 view engine 更改为 jade,那么事情就会按预期开始工作。

根据 other articles 我读过这个问题似乎是一个插值问题,但是我似乎找不到说明如何正确解决这个问题的资源或文档。

例如

我从 rooms json 数组中提取数据,然后使用 for 循环遍历每个数组元素并输出每个房间的数据。使用 jade 以下作品。

table.table.table-striped
  thead
    tr
      th Name
      th Id
  tbody
    each room in rooms
      tr
        td(style="width: 50px;")
          a(href!="/admin/rooms/delete/#{room.id}") Delete
        td #{allTitleCase(room.name)}
        td #{room.id}

使用 pug 以上内容无法正常工作。具体来说,a(href='/admin/rooms/delete/#{room.id}') Delete link 无法正常工作。它不是将房间 ID 注入 link href,而是直接输出 #{room.id} 作为 href [=50= 的结尾部分].

知道如何在 pug 中解决这个问题吗?

请注意,我已经使用 pug 尝试了以下所有方法,但其中 none 有效。

更新:Pug 2.0 引入了对插值处理方式的重大更改。

基于the changelog,以下任何应该有效:

// to solve OP's problem, the following can be used:
a(href="/admin/rooms/delete/" + room.id) Delete

// Here are a few additional scenarios which use the new API 
// for anyone stumbling across this answer in the future
- var href = "/admin/rooms/delete/" + room.id;
a(href=href)
a(href=`${href}`) // Node.js/io.js ≥ 1.0.0
a(href=href + '?foo=bar')