【发布时间】:2015-12-14 22:12:28
【问题描述】:
我正在构建一个 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。
【问题讨论】:
-
您可以使用
Session共享变量。 -
我特别不想使用
Session,因为我可能会在不同的地方重复使用这个模板并且会话将是全局的。按照柯蒂斯的以下回答设置这个效果非常好。