0

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

问题是在每个列表项上都调用了助手。再加上我有一个稍微复杂的函数,它会在检索时改变数据。复杂函数也在每个列表项上被调用。

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

我目前的想法是将计算存储在 var 中,并在遍历列表项时检查变量是否为空,如果不是,我调用变量而不是复杂函数。但是有我在哪里保存 var 等问题。很确定应该有一些通用的解决方案来解决这个问题。

编辑 - 我应该清楚我需要用户列表是被动的。正如我发现的那样,将它放在 var 中使其无反应。我很确定这里的某个地方有一个 deps 要求,但我无法理解它。

4

1 回答 1

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}}

于 2014-07-14T11:05:54.143 回答