2016-06-21 2 views
1

Meteorを使用してテンプレートから別のテンプレートにデータを共有します。私はテンプレートを持っています。つまり、テーブルフォームにいくつかのデータを表示しているallInventory.htmlです。そこに3つのリンクが追加されています。 1つは、ビュー、編集、および削除するiam私はバックエンドからすべてのデータを取得するヘルパーの1つにproductDetailsと私は現在のユーザーのデータを取るビューボタンでイベントをバインドするので、私は正常にデータを取得している私のallinventoryテンプレートでは、他のテンプレート、つまり、私はそのデータを表示または表示したいproductDetailsがあります。しかし、私はallInventoryクリックイベントに関するデータを持っていますが、どのようにproductDetailsテンプレートで同じことをしているのか分かりません。1つのテンプレートのデータを別のテンプレートに送信する方法Meteor

は、ここで私は単にproductsDetailsテンプレートとallInventoryテンプレートデータを共有したいallInvenrtory.html

<button type="button" data ="{{productInfo}}" class="btn btn-info btn-sm"><i class="fa fa-eye"></i>View</button> 

私allInventory.js

Template.allInventory.rendered = function() { 
Template.allInventory.events({ 
     "click .btn":function (e){ 
     data = $(e.target).attr('data'); 
    Router.go('productDetail', {data: $(e.target).attr('data')}, {query: 'q=s', hash: 'hashFrag'}); 
    console.log("button clicked.."+data); 
    console.log(data); 

    } 
}) 

ProductDetails.js

Template.productDetail.rendered = function() { 
Template.productDetail.helpers({ 

productDetails: function() { 
     return data; 
} 
    }); 

です。

助けがあれば助かります! ありがとう

答えて

0

それを行うには良い方法があるので、私は、もっと重要なことはグローバルオブジェクトであることから、この目的のためにセッションを避けることをお勧めしますが、と思います。

あなたはヘルパー使用して、子テンプレートの親テンプレートからのデータを渡すことができます持っている私は、このアプリを構築したいあなたは、コールバックhttps://guide.meteor.com/blaze.html#pass-callbacks

を使用して、親テンプレートに子からデータを渡すことができhttps://guide.meteor.com/blaze.html#passing-template-content

をすべてのサブスクリプションを持ち、URLに基​​づいてテンプレートの1つをレンダリングするコンテナ(ページ)テンプレート。

0

私は両方のテンプレートを3番目の親テンプレートに入れます。

ParentTemplate 
    -SharedInfo 
    -KidTemplate1 
    -KidTemplate2 

この3番目のテンプレートを持つと、テンプレート間で共有したい情報が保持されます。

ReactiveVarを使用して、親テンプレートのtemplate1コードによる変更がtemplate2で​​も確実に表示されるようにすることができます。

子供のための親テンプレートにアクセスするには、あなたはそれらの線に沿って何かを行うことができます。

Blaze.TemplateInstance.prototype.parentTemplate = function (levels) { 
var view = Blaze.currentView; 
if (typeof levels === "undefined") { 
    levels = 1; 
} 
while (view) { 
    if (view.name.substring(0, 9) === "Template." && !(levels--)) { 
     return view.templateInstance(); 
    } 
    view = view.parentView; 
} 
}; 
関連する問題