如何将一个模板的一些数据发送到另一个模板流星
我想使用流星将一些数据从模板分享到另一个模板。我有一个模板,即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! 谢谢
我建议你避免会话用于此目的,因为它是一个全局对象,但更重要的是,因为有更好的方法来做到这一点。
可以使用助手从传递到子模板父模板数据: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;
}
};