Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Templates Meteor-订阅在刷新之前不会更新集合显示(缓存在模板中?)_Templates_Meteor_Meteor Blaze - Fatal编程技术网

Templates Meteor-订阅在刷新之前不会更新集合显示(缓存在模板中?)

Templates Meteor-订阅在刷新之前不会更新集合显示(缓存在模板中?),templates,meteor,meteor-blaze,Templates,Meteor,Meteor Blaze,我有一个显示收集数据的模板(“ImageView”),我在两个不同的路径上使用它来显示不同的内容:一个路径用于显示所有数据,另一个路径用于显示属于特定用户的数据 因为我的布局有各种组件,所以我将ImageView模板嵌入每个路由的主模板(“相册”和“配置文件”) 我在两个主要模板上设置了模板级订阅,如下所示: Template.profile.onCreated ( function() { Tracker.autorun(function() { Meteor.s

我有一个显示收集数据的模板(“ImageView”),我在两个不同的路径上使用它来显示不同的内容:一个路径用于显示所有数据,另一个路径用于显示属于特定用户的数据

因为我的布局有各种组件,所以我将ImageView模板嵌入每个路由的主模板(“相册”和“配置文件”)

我在两个主要模板上设置了模板级订阅,如下所示:

 Template.profile.onCreated ( function() {
     Tracker.autorun(function() {
         Meteor.subscribe('images', Meteor.userId());
     });
 });

我在服务器上有这样的发布功能:

 Meteor.publish('images', function ( user_id) {
     findQuery={}
     if (user_id) {
       findQuery = {userId: user_id};
     } 
     return Images.find(findQuery);

 });
问题是,当我在这两个页面之间的路由之间导航时,模板“ImageView”将不会反应性地更新其内容,直到我按refresh。(如果我手动输入url并按enter键,也可以正常工作)。模板中是否有缓存?但当路由发生变化时(签入onCreated和onestroyed回调),它们似乎像预期的那样被创建和销毁

我在发布函数中登录了控制台,我确保在两个路由之间导航时发布被更改,但客户端没有相应地更新。我也尝试过反应式发布包Template.subscriptionReady和FlowRouter.reload(),但它们并没有解决这个问题

有谁能告诉我这个问题可能是什么?顺便说一句,我正在使用FlowRouter


欢迎您的任何意见。非常感谢。

您不应该在
onCreated
中使用
Tracker.autorun
,因为当模板被销毁时,您必须手动停止计算。改用
this.autorun
。它使用。

您不应该在
onCreated
中使用
Tracker.autorun
,因为当模板被销毁时,您必须手动停止计算。改用
this.autorun
。它使用了。

我不确定这是否是问题的原因,但您不应该在
onCreated
中使用
Tracker.autorun
,因为当模板被销毁时,您必须手动停止计算。改用。非常感谢!这很好地解决了问题。我添加了注释作为答案,因此您可以接受它。:)我不确定这是否是问题的原因,但您不应该在
onCreated
中使用
Tracker.autorun
,因为当模板被销毁时,您必须手动停止计算。改用。非常感谢!这很好地解决了问题。我添加了注释作为答案,因此您可以接受它。:)
 Meteor.publish('images', function ( user_id) {
     findQuery={}
     if (user_id) {
       findQuery = {userId: user_id};
     } 
     return Images.find(findQuery);

 });