2016-07-08 10 views
0

ハンドルバーを使って、流星の中のコレクションからオブジェクトを表示したい。流星群の流星群から簡単な値を表示する方法は?

私にはこの例があります。

コレクション:トランザクション。

サーバー側:

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を持つテーブルやトランザクション文書の他のフィールドを表示することができないのか分かりません。

本当にありがとうございます。

ご質問がありましたら、私にお知らせください。素晴らしい一日を。

Template.MainTransac.helpers({ 
    transaction: function(){ return Transactions.find(); } 
}); 

は、その後、あなたのテンプレートにそのヘルパーを含めることができるようになります:

<tbody> 
<tr> 
<td>TransactionID:</td> 
</tr> 
<tr> 
{{#with transaction}} 
    <td>{{transactionid}}</td> 
{{/with}} 
</tr> 
</tbody> 

は、それが動作ホープ

答えて

0

としては、まず必要になりますが、あなたのコレクションのデータが含まれているヘルパーを作成する必要があります!

+0

ありがとう、私はヘルパーを追加し、あなたの情報に従って再試行して、私は値を得ることができません:/アプリケーションは、クライアントまたはサーバー側では何のエラーも表示されません、ちょうど変更しないでください何でも – Gova

+0

'Transactions.findOne({transactionid:transactionid});が何かを返しますか?それを変数に代入して、その変数をサーバー側に記録してみてください。 – sonlexqt

+0

はい、トランザクションオブジェクトを正しく返します。私はそのテストを行い、すべてが期待通りに動いていた。 – Gova

0

公開カーソルまたはカーソルの配列を返す必要があります。あなたは:

Meteor.publish('getTransaction', function(transactionid){ 
    return Transactions.findOne({transactionid:transactionid}); 
}); 

オブジェクトを返す。

ちょうどその時、あなたのpublish()がしますあなたのsubscribe()として動作します.findOne()

.find()から
Meteor.publish('getTransaction', function(transactionid){ 
    return Transactions.find({transactionid:transactionid}); 
}); 

を変更。テンプレートヘルパーを使用して、テンプレートの正しいデータコンテキストを選択する必要があります。

+0

こんにちはMichel。あなたの情報をありがとう、.findOne()を.find()に変更しましたが、まだ情報を表示していません。この部分に関する例を挙げてください:「テンプレートヘルパーを使用してテンプレートの正しいデータコンテキストを選択する必要があります。これはヘルパーとハンドルバーがエラーの可能性があります。 – Gova

関連する問題