hogan js中的复杂迭代逻辑?

时间:2017-03-18 19:42:42

标签: javascript json node.js express hogan.js

我试图学习expressjs,我有一个查询db的控制器,并返回一个类似于这样的JSON对象:

[ { _id: 58cb851721c1c107ab436686,                                                                                                                             
   title: 'some title',                                                                                                                        
   content: 'this is content' },                                                                                                           
  { _id: 58cb856321c1c107ab436688,                                                                                                                             
   title: 'ah yes',                                                                                                                                           
   content: 'more title and contents' } 
   ...
   ...
]

我现在要做的是在MDL卡布局中显示数组中的每个元素。因此,如果上面的json对象有20个对象,那么应该有20张卡片,每张卡片显示各自_idtitlecontent属性的值。要做到这一点,我必须使用像这样的for循环:

for(var i = 0; i < data.length; i++) {
    <span> {{ data[i]._id }} </span> </br>
    <span> {{ data[i].title }} </span> </br>
    <span> {{ data[i].content }} </span> </br>
  }

这对于像ejs这样的东西显然非常容易,因为它允许模板内部的循环逻辑。但我不知道如何在HoganJS中做到这一点,缺乏适当的文档显然没有帮助。我在互联网上搜索了很多但没有用。目前我正在渲染模板,如:

res.render('index');

是否有可能在霍根这样做,怎么样?或者我需要在我的路线上做一些体操?

1 个答案:

答案 0 :(得分:1)

Hogan.js是针对小胡子测试套件开发的,因此对于hogan.js来说,所有对模板都适用的情况也是如此。

检查https://mustache.github.io/mustache.5.html

这样的事情应该有效:

var obj = {
  data: [{ 
    _id: 58cb851721c1c107ab436686,                                                                                                                             
    title: 'some title',                                                                                                                        
    content: 'this is content'
  }, {
    _id: 58cb856321c1c107ab436688,                                                                                                       
    title: 'ah yes',                                                                                                                                           
    content: 'more title and contents'
  },  
  ...
  ]};

和模板:

{{#data}}
  <span>{{_id}}</span>
  <span>{{title}}</span>
  <span>{{content}}</span>
{{/data}}