Meteor:在模板之间共享模板变量

时间:2015-12-14 13:49:07

标签: templates meteor

我正在构建一个用户界面,使用户能够根据他们当前使用的过滤器字段过滤结果。目前这只是一个单独的ui,结构如下:

Template.clientList.onCreated(function(){
  var instance = this;

  // filterDictionary manages the filter parameters. 
 instance.filterDictionary = new ReactiveDict();
 instance.filterDictionary.set("filterName", null);
 instance.filterDictionary.set("filterDate", null);
 instance.filterDictionary.set("filterId", null);

 // subscription management goes here, uses filterDictionary. 

});

我现在想在另一个模板中重用过滤器,并希望将其嵌入到子模板中。所以这应该改为:

Template.filterTemplate.onCreated(function(){
  var instance = this;
  instance.filterDictionary = instance.canIAccessChildTemplates.filterDictionary;

 // subscription management goes here, uses filterDictionary.
 // subscriptions will also use parameters specific to the template they are in.
});

在儿童之间访问数据的最佳方式是什么?我真的不希望这是一个全局变量,因为可以想象你可能希望这两个ui元素彼此相邻,即同时显示2个视图,并且它们不能将它们的更改应用于同一个ReactiveDict。

1 个答案:

答案 0 :(得分:1)

如果您在filterTemplate模板中嵌入clientList,则可以传递以下数据:

{{> filterTemplate filterDictionary=filterDictionary}}

其中filterDictionaryclientList的模板助手。如果它未嵌入到其他模板中,则必须使用Session变量。