Javascript Meteor Tracker.autorun并不是每次更新都会调用
我正在尝试使用Meteor排行榜的非常基本的默认应用程序。我想在我的页面加载的每个更新上做一些处理。Tracker.autorun仅第一次调用,但不是每次更新都调用。模板将自动刷新,但只有自动运行未执行。我用自动发布和非自动发布模式测试了自动运行,但仍然不起作用。我用的是流星1.1.0.2。有解决办法吗Javascript Meteor Tracker.autorun并不是每次更新都会调用,javascript,meteor,Javascript,Meteor,我正在尝试使用Meteor排行榜的非常基本的默认应用程序。我想在我的页面加载的每个更新上做一些处理。Tracker.autorun仅第一次调用,但不是每次更新都调用。模板将自动刷新,但只有自动运行未执行。我用自动发布和非自动发布模式测试了自动运行,但仍然不起作用。我用的是流星1.1.0.2。有解决办法吗 if (Meteor.isServer) { Meteor.publish("tasks", function () { return Tasks.find(); });}
if (Meteor.isServer) {
Meteor.publish("tasks", function () {
return Tasks.find();
});}
if (Meteor.isClient) {
Meteor.subscribe("tasks", function () {
console.log("On subscribe");
});
Tracker.autorun(function () {
console.log("On Load");
});}
如果要使用自动运行块,则需要在自动运行块中放入将触发它的反应元素。在您的情况下,它将是:
Tracker.autorun(function () {
var myCursor = Tasks.find().fetch();
console.log("On Load");
});}
阅读以了解更多有关反应机制的信息。为了使其更清晰,您还可以将自动运行附加到模板(请参见链接)仍然不工作。也使用了这个链接。仍然无法正常工作,
instance
只是他在onCreated
,this
中用于this
的变量名,引用模板实例。通过在控制台console.table(Tasks.find().fetch())
中键入,确保出版物正常工作。还请注意,仅当已发布数据的内容发生更改时,自动运行才会重新运行Meteor.publish(“tasks”,function(){console.log(“publishing”);return tasks.find();});发布不会在每次更新时执行,但模板会顺利更新如果您不重新订阅,则不重新发布是正常的,即看不到“发布”日志。反应性不应该在每次发布的数据更改时都重新运行发布,它应该更新返回的游标或游标数组。它通过将var myCursor=Tasks.find()更新为var myCursor=Tasks.find().fetch()开始工作;谢谢