我想使用把手在流星的集合中显示一个对象。
我有关于我所拥有的这个例子:
收藏:交易。
服务器端:
Meteor.publish('getTransaction', function(transactionid){
return Transactions.findOne({transactionid:transactionid});
});
客户方:
HTML
<template name='MainTransac'>
<body>
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title" align="center">General information</h3>
</div>
<div class="panel-body">
<table class="table table-striped">
<tbody>
<tr>
<td>TransactionID:</td>
</tr>
<tr>
<td>{{transactionid}}</td>
</tr>
</tbody>
</table>
</div>
</div>
</body>
</template>
JS
Template.MainTransac.onCreated(function(){
this.subscribe('getTransaction',Router.current().params.transactionid);
});
正如您所看到的,我从另一个页面收到了trasactionid。但我无法知道如何使用交易ID或交易文档中的任何其他字段显示该表。
我真的很感谢你的帮助。
如果您有任何疑问,请告诉我,祝您有个美好的一天。
答案 0 :(得分:0)
首先,您必须创建一个包含您的集合数据的帮助程序:
Template.MainTransac.helpers({
transaction: function(){ return Transactions.find(); }
});
然后,您将能够在模板中包含该帮助程序:
<tbody>
<tr>
<td>TransactionID:</td>
</tr>
<tr>
{{#with transaction}}
<td>{{transactionid}}</td>
{{/with}}
</tr>
</tbody>
希望它有效!
答案 1 :(得分:0)
发布必须返回游标或游标数组。你有:
Meteor.publish('getTransaction', function(transactionid){
return Transactions.findOne({transactionid:transactionid});
});
返回一个对象。
只需将.findOne()
更改为.find()
Meteor.publish('getTransaction', function(transactionid){
return Transactions.find({transactionid:transactionid});
});
然后,您的publish()
将与subscribe()
一样有效。您仍然需要通过模板助手为模板选择正确的数据上下文。