Meteor Deps-运行客户端函数

Meteor Deps-运行客户端函数,meteor,Meteor,我正在努力掌握Meteor deps,具体来说,我的用例是: 2) 更改集合时,我希望在客户端运行jQuery函数 我认为DEP是我正在寻找的,但目前我只使用了: Template.templateName.set () -> return Set.find({}) …在反应性方面 一个解决方案,只要在每次更改集合时对其进行console.log操作就足够了 当然可以使用上下文做你想做的事情。这比[1]要复杂一点,但是如果您遵循文档中的deps示例,您可以很容易地做您想要做的事情。差不

我正在努力掌握Meteor deps,具体来说,我的用例是:

2) 更改集合时,我希望在客户端运行jQuery函数

我认为DEP是我正在寻找的,但目前我只使用了:

Template.templateName.set () ->
 return Set.find({})
…在反应性方面


一个解决方案,只要在每次更改集合时对其进行console.log操作就足够了

当然可以使用上下文做你想做的事情。这比[1]要复杂一点,但是如果您遵循文档中的deps示例,您可以很容易地做您想要做的事情。差不多

var setup = function() {
  var context = new Meteor.deps.Context();
  context.on_invalidate(function() {
    setup();
  });
  context.run(function() {
    Set.find({});
    console.log('changed');        
  });
}
setup();
或者,您可以制作一个不返回任何内容的帮助器,以利用将为您设置的上下文:

Template.templateName.do_nothing -> 
  console.log 'changed'
  Set.find({})
  null
尽管这将迫使HTML在您可能不希望刷新时刷新

另一方面,您可能只需要
收集

[1] 如果/当他们合并时,您可以执行以下操作:

Meteor.deps.await(function() { return Set.find(); }, function() { 
  console.log('changed'); 
});

如果您想了解更多信息,可以查看
await
函数的源代码。

我没有想到返回null的模板。我让它工作了,干杯。尽管如此,上下文确实是这样做的正确方式吗?是的,我认为上下文确实是这样做的正确方式。使用一个“假”助手对我来说就像是一种恶作剧。有了deps扩展插件,使用上下文就明显简单多了,希望我们可以在所有地方进行反应式编码。