如何在流星模板中显示流星集合中的简单值?

时间:2016-07-08 02:46:34

标签: javascript meteor

我想使用把手在流星的集合中显示一个对象。

我有关于我所拥有的这个例子:

收藏:交易。

服务器端:

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或交易文档中的任何其他字段显示该表。

我真的很感谢你的帮助。

如果您有任何疑问,请告诉我,祝您有个美好的一天。

2 个答案:

答案 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()一样有效。您仍然需要通过模板助手为模板选择正确的数据上下文。