使用Jade迭代嵌套数组对象

时间:2016-11-04 11:55:58

标签: javascript node.js loops express pug

我想用Jade在我的视图上渲染这些数据。这是从QPX api返回的。我有这样的数据结构。

{ 
  kind: 'qpxExpress#tripsSearch',
  trips: { 
    kind: 'qpxexpress#tripOptions',
    requestId: 'OqaX52F0Z433IbMlh0PNr6',
    data: {
      kind: 'qpxexpress#data',
      airport: [Object],
      city: [Object],
      aircraft: [Object],
      tax: [Object],
      carrier: [Object]
    },
    tripOption: [ [Object], [Object], [Object] ] 
  }
}

如何使用Jade访问tripOption中的嵌套对象数组?我似乎无法解决这个问题。这是我的Jade模板:

block content
  .ui
    for data in result
      .ui_box
        .ui_box__inner
          .event
            span #{data.tripOption[0].slice[0]}

这是我从Jade收到的错误

Cannot read property '0' of undefined

路由器

router.get('/', function(req, res, next) {
  api.apiGet(function (data) {
    console.log(data) 
    res.render('index', {result: data})
  })
})

1 个答案:

答案 0 :(得分:1)

你的for..in循环正在迭代一个不起作用的对象。这不是原生javascript

中常见的tripOptions循环

下面的代码稍微修改了路由器,并以更直接的方式将数据(block content .ui for data in tripOptions .ui_box .ui_box__inner .event span #{data.someProp} )传递给视图。首先是Jade模板:

tripOptions

具有tripOption数据的新路由器以router.get('/', function(req, res, next) { api.apiGet(function (data) { console.log(data) res.render('index', { tripOptions: data.trips.tripOption }) }) }) (复数形式)提供给视图:

=DEC2BIN(A2,5)