我正在努力掌握 Meteor deps,为了具体说明我的用例是:
2)当集合改变时,我想在客户端运行一个jQuery函数
我认为deps 是我正在寻找的,但目前我只使用过:
Template.templateName.set () ->
return Set.find({})
...就反应性而言。
每次更改时简单地将console.log收集到集合的解决方案就足够了。
我正在努力掌握 Meteor deps,为了具体说明我的用例是:
2)当集合改变时,我想在客户端运行一个jQuery函数
我认为deps 是我正在寻找的,但目前我只使用过:
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。
另一方面,您可能只想要Collection.observe
.
[1] 如果/当他们合并此拉取请求时,您可以执行以下操作:
Meteor.deps.await(function() { return Set.find(); }, function() {
console.log('changed');
});
await
如果您想了解更多信息,可以查看函数的来源。