用handlebars.js循环对象的对象

时间:2017-12-28 21:20:43

标签: javascript node.js handlebars.js

我有一个简单的node.js应用程序,它返回以下json。

inputOnClick(e){
  e.preventDefault();
  var thisRadioBtn = e.target.name;
  //make a deep copy of the state
  const stateCopy = JSON.parse(JSON.stringify(this.state.cards));
  //go through state copy and update it
  stateCopy.forEach(card => {
    card.options.forEach(option => {
      if(option.radioName === thisRadioBtn){
        //invert value
        //make sure the values are booleans
        option.selected = !option.selected;
      }
    });
  });
  //update the components state
  this.setState({cards: stateCopy});
}

在我的index.hbs文件中,我有以下内容。

{
  computers: {
   john: {
     cpu: "intel",
     ram: "8MB",
     hd: "1TB"
   },
   jane: {
     cpu: "intel",
     ram: "12MB",
     hd: "500GB"
   },
   mary: {
     cpu: "intel",
     ram: "8MB",
     hd: "500GB"
   }
  }
}

我希望得到以下结果。

约翰:英特尔,8MB,1TB jane:intel,12MB,500GB 等。

非常感谢任何建议!

1 个答案:

答案 0 :(得分:2)

您不必创建嵌套的each。只需使用paths结合@key来获取迭代对象的当前键即可。

{{#each computers}}
  {{@key}}: {{./cpu}}, {{./ram}}, {{./hd}}
{{/each}}