2013-02-26 2 views
1

Если у меня есть коллекция с такого рода документов:Лучший способ показать поле документа в Метеор?

{ 
    "Category" : "DVDs", 
    "items" : { 
     "Name" : "Mission Impossible", 
     "Owner" : "me", 
     "LentTo" : "Alice" 
    }, 
    "_id" : "4ocjZXCbLk5Zo8afp" 
} 

Что это самый простой способ, чтобы показать «DVD-диски» в браузере.

я мог сделать это, добавив {{list_cat}} в шаблоне или путем создания этой функции:

Template.list.list_cat = function() { 
    if (Session.equals('current_list', null)) return null; 
    else { 
    var cats = lists.findOne({ _id: Session.get('current_list')}); 
    return cats.Category; 
    } 
} 

Но я уверен, что есть более быстрый очиститель способ сделать это?

+0

Не будет '' деталей быть массив, а не только один объект? – Rahul

ответ

1

Учитывая шаблон, в котором вы показываете список документов, вы можете просто обратиться непосредственно к собственности:

<body> 
    {{> documents}} 
    <br/><br/> 
    {{> selected_doc}} 
</body> 

<template name="documents"> 
    {{#each document}} 
    <div>{{Category}}</div> 
    {{/each}} 
</template> 

<template name="selected_doc"> 
    Selected doc:<br/> 
    Name: {{items.Name}}<br/> 
    Owner: {{items.Owner}}<br/> 
    Lent to: {{items.LentTo}} 
</template> 

Template.documents.events({ 
    "click div": function() { 
    Session.set("selected_doc", this._id); 
    } 
}); 

Template.selected_doc = function() { 
    return lists.findOne({_id: Session.get("selected_doc")}); 
} 
+0

Привет, Рахул, я мог зайти так далеко, но я пытаюсь сделать это, нажав одну категорию и покажу детали документа, имеющие эту категорию. Моя идея состоит в том, чтобы поместить этот документ в объект сеанса, а затем получить доступ к нему из шаблона с помощью этого объекта, но мне это не удалось. Все примеры представлены с коллекциями, а не с одним документом. Спасибо! – ndemoreau

+0

Я обновил ответ, включив в него щелчок по категории, сохранение его в сеансе, а затем отображение выбранного документа. – Rahul

+0

ОК, круто! Я был уверен, что есть лучший способ. Большое спасибо!!! – ndemoreau

Смежные вопросы