玉插值不在属性中工作

时间:2016-03-26 07:22:06

标签: html node.js pug

它适用于其他任何地方......我真的不确定如何推理这个。

下面的代码会插入checkedValue,但因为checkedValue周围有“”,所以它会保持选中该框。但是我不能删除引号,否则它将无效。

extends layout

block content
  h1.headLine= challenge.title
  p Difficulty: #{challenge.difficulty} #{checkedValue} Points: #{challenge.points} //checkedValue interpolates to true or false
  p= challenge.description
  form(action="/submitChallenge" method="post")
    label(for="challenge1") Mark as Solved!
    input( type="checkbox" id="challenge" checked="#{checkedValue}" name="challenge" value="#{challenge._id}" )
    p #{checkedValue} //interpolates here too, without any " "
    button(type="submit") Submit

以下代码只是将#{checkedValue}保留为原样而没有任何插值。所以..这也不起作用,即使#{challenge._id}工作得很好!:

input( type="checkbox" id="challenge" "#{checkedValue}" name="challenge" value="#{challenge._id}" )

我也尝试删除引号。

似乎没什么用。目前变量是一个布尔值,但如果我无法进行插值则无关紧要!

我已经考虑将其设置为“已选中”或“”未经检查,但是......我仍然需要对其进行插值。

2 个答案:

答案 0 :(得分:0)

在Jade中,checked属性应使用布尔值,而不是作为字符串进行插值。另外,请确保在模板中的某处设置doctype html

doctype html
input(type="checkbox" id="challenge" checked=!!checkedValue name="challenge" value="#{challenge._id}")

使用以下数据和假名值(0undefinednullfalse

{
  challenge: { _id: 1432513 },
  checkedValue: false
}

将返回

<!DOCTYPE html>
<input type="checkbox" id="challenge" name="challenge" value="1432513">

一个三位一体的价值

checkedValue: true

将返回

<input type="checkbox" id="challenge" checked name="challenge" value="1432513">

请参阅布尔属性部分in the Jade documentation并在online demo中尝试上述值。

答案 1 :(得分:0)

试试这个:

doctype html
input(type="checkbox" id="challenge" value='' + challenge._id)