【问题标题】:TypeError while compiling Jade template编译 Jade 模板时出现 TypeError
【发布时间】:2012-10-02 03:24:41
【问题描述】:

我有这个玉模板开始导致以下类型错误。

TypeError: /home/jared/code/fiestah-admin/views/items.jade:11
    9|         a(href=urlFor('item details', {
    10|           params: {    
 \> 11|             //id: item._id
    12|           }
    13|         })) #{item.name}
    14|         .planner By

Cannot read property '_id' of null
    at list_mixin (eval at <anonymous> (/home/jared/code/fiestah-admin/node_modules/jade/lib/jade.js:176:8))
    at list_mixin (eval at <anonymous> (/home/jared/code/fiestah-admin/node_modules/jade/lib/jade.js:176:8))
    at eval (eval at <anonymous> (/home/jared/code/fiestah-admin/node_modules/jade/lib/jade.js:176:8))
    at Object.exports.compile (/home/jared/code/fiestah-admin/node_modules/jade/lib/jade.js:181:12)
    at ServerResponse.res._render (/home/jared/code/fiestah-admin/node_modules/express/lib/view.js:425:21)
    at ServerResponse.res.render (/home/jared/code/fiestah-admin/node_modules/express/lib/view.js:318:17)
    at render (/home/jared/code/fiestah-admin/controllers/items-controller.js:23:7)
    at module.exports (/home/jared/code/fiestah-admin/controllers/items-controller.js:41:5)
    at Request._callback (/home/jared/code/fiestah-admin/node_modules/lib/libraries/api.js:95:5)
    at Request.init.self.callback (/home/jared/code/fiestah-admin/node_modules/request/main.js:120:22)

它抱怨_id 的属性,但我认为它实际上与item._id 无关。如果我注释掉该行,或者在 id 之前添加另一个参数,则行号会更改,但异常保持不变。我什至删除了模板中对_id 的两个引用,例外情况相同。

这是模板:

.page-header
  h1 Items

mixin list(items)
  hr
  ul.index
    - each item in items
      li
        a(href=urlFor('item details', {
          params: {
            id: item._id
          }
        })) #{item.name}
        .planner By
          | 
          a(href=urlFor('user details', {
            params: {
              id: item.planner._id
            }
          })) #{item.planner.name.full}

.row
  .span4
    h1 Open Items (#{openItems.length})
    mixin list(openItems)
.row
  .span4
    h1 Open Items - No Offers (#{emptyItems.length})
    mixin list(emptyItems)
.row
  .span4
    h1 Past Items (#{pastItems.length})
    mixin list(pastItems)

我检查了三个“项目”数组中传递的内容,它们要么都是空的,要么包含带有_id 字段的有效对象。数组中没有 null 成员。

【问题讨论】:

    标签: javascript node.js express pug


    【解决方案1】:

    在内联代码中,执行以下操作:

    .row
      .span4
        h1 Open Items (#{openItems.length})
          +dolist(openItems)
    

    而不是这样:

    .row
      .span4
        h1 Open Items (#{openItems.length})
          mixin dolist(openItems)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多