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 有效。
a(href="/admin/rooms/delete/#{room.id}") Delete
a(href!="/admin/rooms/delete/#{room.id}") Delete
更新: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')
我在玩弄 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 有效。
a(href="/admin/rooms/delete/#{room.id}") Delete
a(href!="/admin/rooms/delete/#{room.id}") Delete
更新: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')