如何将一个模板的一些数据发送到另一个模板流星

问题描述:

我想使用流星将一些数据从模板分享到另一个模板。我有一个模板,即allInventory.html我在其中显示表格中的一些数据我添加三个链接那里。一个用于查看,编辑和删除我想要的iam从后端获取所有数据到helper之一即productDetails中,然后我将一个事件与视图按钮绑定,该按钮将获取当前用户点击哪个产品的数据,以便我成功获取数据在我的所有库存模板中,但还有另一个模板,即我想要呈现或显示该数据的productDetails。但卡住了,我有allInventory点击事件的数据,但不知道如何与productDetails模板的ishare相同。如何将一个模板的一些数据发送到另一个模板流星

这里是我的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; 
} 
    }); 

allInvenrtory.html

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

我只是单纯的想与大家分享产品详细模板allInventory模板数据。

任何帮助将appriciated! 谢谢

如果要在模板之间共享数据,可以使用Session变量。

您可以按照本指南:

http://meteortips.com/first-meteor-tutorial/sessions/

我建议你避免会话用于此目的,因为它是一个全局对象,但更重要的是,因为有更好的方法来做到这一点。

可以使用助手从传递到子模板父模板数据:https://guide.meteor.com/blaze.html#passing-template-content

您可以使用回调https://guide.meteor.com/blaze.html#pass-callbacks

从孩子传递数据给父模板,我会结构本应用有一个容器(页面)模板,它将拥有所有订阅并根据URL呈现您的一个模板。

我会把这两个模板放在第三个父模板中。

ParentTemplate 
    -SharedInfo 
    -KidTemplate1 
    -KidTemplate2 

然后让第三个模板保存您想要跨模板共享的信息。

为此,您可以使用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; 
} 
};