流星新手在这里!
我有一个显示所有未结订单的页面。订单详细信息存储在集合中。模板助手将返回订单详细信息。
Template.delivery.helpers({
openOrders: function(){
return Orders.find({status: "open"});
}
});
模板看起来像这样。
{{#if openOrders}}
{{#each openOrders}}
Date: {{createdAt}}
Total items: {{items.length}}
Location: {{location}} //It prints the location _id
{{/each}}
{{/if}}
订单收藏只包含该位置的_id。位置详细信息存储在名为位置的集合中。
我想显示位置名称(存储在Location集合中)而不是_id。
我创建了一个模板帮助器,它返回了位置详细信息,但是如何将这些链接链接到帮助程序,以便显示Location name
而不是Location _id
?
答案 0 :(得分:0)
当您以关系数据库方式使用mongodb
时,您需要安装publish-composite
包以确保订阅所有必需的数据。
答案 1 :(得分:0)
当您使用each
时,它会将this
设置为正在迭代的当前事物。这将允许您在助手中使用this
来执行查找。所以在这种情况下,如果您使用帮助程序来获取订单:
orders: function () {
return Orders.find({ status: "orders" });
}
然后当您使用{{#each}}
进行迭代时,this
设置为当前顺序,这意味着您的位置帮助程序如下所示:
location: function () {
return Locations.findOne(this.locationId);
}
将所有内容放在模板中就像是:
{{#if Template.subscriptionsReady}}
{{#each orders}}
<h1 class="title">Order #{{_id}}</h1>
{{#with location}}
<div class="location">
<span>Latitude: {{ latitude }}</span>
</div>
{{/with}}
{{/each}}
{{/if}}
请注意:只有在您发布地点时才会有效。