修改订阅中使用的会话时,模板完全重新计算,而不是仅添加新数据

时间:2014-10-12 20:37:58

标签: meteor

在我的项目中,我有一条显示内容列表的路线。 内容由子目录进行检索,并取决于3 Session var。 在开始时我得到12项内容。我有一个寻呼机,允许通过修改一个Session依赖项来获取更多数据。 但是当我这样做时,内容列表如果完全删除然后完全重新呈现。

我尝试使用调试器查看应用内部。它似乎是在Tracker.flush()方法(来自Tracker.js流星文件)中发生的。

  while (pendingComputations.length) {
    var comp = pendingComputations.shift();
    comp._recompute(); // HERE IT WILL REMOVE ALL ITEMS AND THEN ADD ALL FROM THE SUBSCRIPTION
  }

实际上它应该只是向模板中添加新项目,而不是将它们全部删除,然后再添加新项目。

我使用Iron Router,我的应用程序是0.9.3.1(从0.8.x升级)。

[编辑]关于“重新渲染”的意思的精确度: 项目列表已从模板中完全删除 然后列表再次显示旧项目和新项目 因为我一步一步地调试我说当清除列表模板时,在控制台中我仍然可以访问物品集合,并且该集合上的计数返回一个大于0的数字

[编辑]关于复制项目 我正在努力,我希望我能够理解这个问题来解释它。它在http://displaybugreproductionwithironrouterprogess.meteor.com可用 源代码在这里https://github.com/Rebolon/meteor-ironrouterprogress-bug 如果你只是做了

meteor remove mrt:iron-router-progress

然后应用程序正确运行并且模板未完全重新渲染(因此屏幕上没有剪裁)。

0 个答案:

没有答案