Javascript Meteor Tracker.autorun并不是每次更新都会调用

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(); });}

我正在尝试使用Meteor排行榜的非常基本的默认应用程序。我想在我的页面加载的每个更新上做一些处理。Tracker.autorun仅第一次调用,但不是每次更新都调用。模板将自动刷新,但只有自动运行未执行。我用自动发布和非自动发布模式测试了自动运行,但仍然不起作用。我用的是流星1.1.0.2。有解决办法吗

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()开始工作;谢谢