如何访问meteor.js中另一个对象中的对象

时间:2016-07-09 17:51:33

标签: javascript meteor handlebars.js meteor-blaze spacebars

我目前正在尝试使用Meteor访问其他对象中的对象。 对象看起来像:

({
title: "Bubble Explosion",
createdAt: new Date(),
label: {
        status: "live",
        class: "success"
        } 
})

我的问题是我不知道如何访问标签对象的状态和类。所有其他属性都可以正常工作..

<tbody>
   {{#each imports}}
      {{> tableRow}}
   {{/each}}
</tbody>

<template name="tableRow">
...

  <td>
     <span class="label label-{{label}} text-xs-left">{{label.status}}
     </span>                 
  </td>
...
</template>

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您必须为模板指定一个帮助程序来检索数据,例如: {Doc here}

<强> mytemplate.html

<template name="table">
    <tbody>
      {{#each getImports}}
           {{> tableRow}}
      {{/each}}
    </tbody>
</template>

<template name="tableRow">
  <td>
     <span class="label label-{{label.class}} text-xs-left">{{label.status}}
     </span>                 
  </td>
  <td>
     {{title}}                
  </td>
</template>

<强> mytemplate.js

Template.table.helpers({
  getImports() {
    return [
      {
        title: "Bubble Explosion",
        createdAt: new Date(),
        label: {
              status: "live",
              class: "success"
        } 
      },
      {
        title: "Bubble Explosion #2",
        createdAt: new Date(),
        label: {
              status: "live",
              class: "success"
        } 
      },
    ]
  }
})

要使用MongoDB数据,您可以更新 mytemplate.js 文件

Template.table.onCreated(function() {
  let instance = this;
  /* Subscribe to data */
  instance.subscribe('imports')      
})
Template.table.helpers({
  getImports() {
     return Imports.find({}).fetch()
  }
})