如何避免在流星列表项中的每个下拉列表中重复调用辅助函数?

时间:2014-07-14 10:52:44

标签: meteor meteor-blaze

在我的界面中,我有一个项目列表(让我们称这些项目为任务)。对于每项任务,我都可以指派某人。我选择某人通过将鼠标悬停在一个下拉列表上进行分配,这将有一个我可以选择的人员列表。我的所有任务都将拥有相同的用户组。它现在的方式是,下拉是一个模板,它有一个帮助器来生成用户列表。

问题是在每个列表项上调用帮助程序。除此之外,我有一个稍微复杂的功能,可以在检索时改变数据。还在每个列表项上调用复杂函数。

我想要做的是有一个反应数据点,它将作为所有列表项中下拉列表的单一参考点。因此,计算仅在页面加载时发生一次,并且所有下拉将查看该数据源。在Meteor中有这样的规范方法吗?

我目前的想法是将计算存储在var中,当迭代列表项时,我检查变量是否为空,如果不是,我调用变量而不是复杂函数。但是有一些问题我在哪里可以保留var等等。很确定应该有一些针对这个问题的常见解决方案。

编辑 - 我应该清楚我需要用户列表才能被动。如我发现的那样,将它置于var中使其成为非反应性的。我很确定这里有一个deps要求,但我无法绕过它。

1 个答案:

答案 0 :(得分:1)

Template.tasks.created = function() {
  Deps.autorun(function() {
    var users;
    //generate list of users and assign results to users
    Template.tasks.users = users;
  });
}

这样,您就可以通过Template.tasks.users{{users}}

访问被动数据