使用玉和下划线创建表

时间:2014-10-06 08:23:52

标签: javascript underscore.js pug

我想迭代一个JSON对象数组并使用下划线和jade创建一个表 但我的玉模板给我发了以下错误,我无法找到任何资源来解决它。

  Error: /home/kseguy/node_projects/prwrite/views/dashboard/index.jade:69
    67|               script(type="text/template" ,id="data-table")
    68|                 <% _.each(article,function(article){ %> 
  > 69|                     tr
    70|                       td  <%= article.ProjectName %>                              
    71|                       td  <%= article.Date %>                              
    72|                       td  <%= article.Status %>                               

unexpected token "indent"
    at Parser.parseExpr (/home/kseguy/node_projects/prwrite/node_modules/jade/lib/parser.js:252:15)
    at Parser.block (/home/kseguy/node_projects/prwrite/node_modules/jade/lib/parser.js:707:25)
    at Parser.tag (/home/kseguy/node_projects/prwrite/node_modules/jade/lib/parser.js:816:24)
    at Parser.parseTag (/home/kseguy/node_projects/prwrite/node_modules/jade/lib/parser.js:737:17)
    at Parser.parseExpr (/home/kseguy/node_projects/prwrite/node_modules/jade/lib/parser.js:211:21)
    at Parser.block (/home/kseguy/node_projects/prwrite/node_modules/jade/lib/parser.js:707:25)
    at Parser.tag (/home/kseguy/node_projects/prwrite/node_modules/jade/lib/parser.js:816:24)
    at Parser.parseTag (/home/kseguy/node_projects/prwrite/node_modules/jade/lib/parser.js:737:17)
    at Parser.parseExpr (/home/kseguy/node_projects/prwrite/node_modules/jade/lib/parser.js:211:21)
    at Parser.block (/home/kseguy/node_projects/prwrite/node_modules/jade/lib/parser.js:707:25)

如何调试问题?我已经尝试使用sublime文本将缩进转换为制表符和空格,但到目前为止还没有成功。

这是我的玉石模板

tbody      
          script(type="text/template" ,id="data-table")
            <% _.each(article,function(article){ %> 
             tr
              td  <%= article.ProjectName %>                              
              td  <%= article.Date %>                              
              td  <%= article.Status %>                               
              td  <%= article.Url %>
            <% }); %>    

1 个答案:

答案 0 :(得分:1)

这确实有效,因为jade以&lt;作为常规文本。但是你必须要小心,因为他们不可能有孩子,所以他们下面的线条不能再缩进。

这是一个带有正常注释的玉石测试,然后您可以用下划线替换

 // http://jsfiddle.net/smwpvngc/2/
 <template>
 script  
   <!-- each -->  
   tr
     td <!-- col1 -->
     td <!-- col2 -->
     td <!-- col3 -->
   <!-- close each -->
 </template>

输出:

<script> 
<!-- each --> <tr><td><!-- col1 --></td><td><!-- col2 --></td>
<td><!-- col3 --></td></tr><!-- close each --></script>

如果我在tr之前添加一个额外的空格,我也会收到一个缩进错误,因为jade不知道如何用子节点填充原始条目。