我有这个流星布局:
<template name="layout">
{{> toolbar }}
<div class="container">
{{> yield}}
</div>
</template>
Router.configure({
layoutTemplate: 'layout'
});
我希望工具栏参数显示基于页面的动态内容。我可以通过使用一些反应变量来做到这一点。但是,当同一个客户端同时打开多个页面时会发生什么?每个页面的工具栏都应显示自己的内容,彼此独立。我该如何实现它?
答案 0 :(得分:1)
如果您打算在同一页面的多个模板中使用反应数据,我建议您声明一个反应变量(ReactiveVar()
)或reactive dictionary
在js文件的开头(如果你有几个,使用父模板文件),在任何template.yourTemplate.rendered
或template.yourTemplate.rendered
之外,你声明它。范围将涵盖页面中调用的所有模板。
反应性词典的一个例子:
var pageSession = new ReactiveDict();
在主模板rendered
功能中,设置您的反应变量:
pageSession.set("yourVariable", yourValue);
你设置一个帮助器来返回它:
Template.layout.helpers({
toolbar: function(){
return pageSession.get("yourVariable");
}
})