Как получить доступ к объекту внутри другого объекта в meteor.js

В настоящее время я пытаюсь получить доступ к объектам внутри других объектов, используя 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>

Какие-либо предложения?


person Pascal    schedule 09.07.2016    source источник


Ответы (1)


Вы должны указать помощника для вашего шаблона для получения данных, например: {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()
  }
})
person Arthur    schedule 09.07.2016
comment
Я уже получаю этот объект, используя вспомогательную функцию из моей базы данных mongo: Template.overview.helpers({ imports: function() { return imports.find({}); } }) - person Pascal; 09.07.2016
comment
попробуйте добавить функцию fetch(): return imports.find({}).fetch() - person Arthur; 09.07.2016
comment
Кроме того, сделайте console.log(imports.find({}).fetch()) перед возвратом, чтобы проверить, есть ли у вас данные о вашем клиенте. А если не проверить, хорошая ли публикация? - person Arthur; 09.07.2016
comment
Выходные данные console.log выглядят следующим образом: Object _id : MongoID.ObjectID createdAt : Sat 09 Jul 2016 19:25:18 GMT+0200 (CEST) label : Класс объекта : статус успеха : live - person Pascal; 09.07.2016
comment
Так что мой код должен работать нормально. Вам нужно 2 шаблона, один для подписки и помощник. А другой для отображения каждой строки - person Arthur; 09.07.2016