为什么我的玉代码会产生不需要的文本节点?

时间:2013-07-22 21:17:18

标签: pug

我在Jade中设置条件块内的变量。 我有许多对象具有两种不同类型的评级中的零个,一个或两个。 每个对象都有两个<span>标签。如果评级不存在,则span标记留空。否则,我会在我的span标签中插入适当的评级。我需要变量以供将来在DOM中使用。

您可以在此尝试以下Jade代码:
http://cssdeck.com/labs/a5rru5vj

编辑:以下简单的解决方案,留下这个以防其他人:D

//Jade
- var demo = [{rating1:'2.5'}, {rating2:3.333333}]
each obj in demo
  if(obj.rating1 !== undefined)
    - var r1 = obj.rating1 || ""
    = r1 
  else
    - var r1 = ""
    = r1
  if(obj.rating2 !== undefined)
    - var r2 = String(obj.rating2).slice(0,3) 
    = r2
  else
    - var r2 = ""
    = r2
  div.objIndex(data-obj=JSON.stringify(obj))
    span.myRating= r1
    span.googleRating= r2

// output html (with whitespace cleaned up)
// Note that Jade is writing the variables into the output, why, and how to avoid this?
<body>
  2.5
  <div data-obj="{&quot;rating1&quot;:&quot;2.5&quot;}" class="objIndex">
    <span class="myRating">
      2.5
    </span>
    <span class="googleRating">
    </span>
  </div>
    3.3
    <div data-obj="{&quot;rating2&quot;:3.333333}" class="objIndex">
      <span class="myRating">
      </span>
      <span class="googleRating">
        3.3
      </span>
  </div>
</body>

1 个答案:

答案 0 :(得分:0)

= r1= r2行是罪魁祸首。我添加了最近尝试修复其他内容的内容,这些内容未在上面的示例代码中重现。