如何在Meteor中对变量中的页面范围进行模拟?

时间:2015-06-17 00:37:16

标签: meteor meteor-helper

我有这个流星布局:

<template name="layout">
    {{> toolbar }}

    <div class="container">
        {{> yield}}
    </div>

</template>




Router.configure({
  layoutTemplate: 'layout'
});

我希望工具栏参数显示基于页面的动态内容。我可以通过使用一些反应变量来做到这一点。但是,当同一个客户端同时打开多个页面时会发生什么?每个页面的工具栏都应显示自己的内容,彼此独立。我该如何实现它?

1 个答案:

答案 0 :(得分:1)

如果您打算在同一页面的多个模板中使用反应数据,我建议您声明一个反应变量(ReactiveVar())或reactive dictionary

在js文件的开头(如果你有几个,使用父模板文件),在任何template.yourTemplate.renderedtemplate.yourTemplate.rendered之外,你声明它。范围将涵盖页面中调用的所有模板。

反应性词典的一个例子:

var pageSession = new ReactiveDict();

在主模板rendered功能中,设置您的反应变量:

pageSession.set("yourVariable", yourValue);

你设置一个帮助器来返回它:

Template.layout.helpers({
    toolbar: function(){
        return pageSession.get("yourVariable");
    }
})