在我的项目中,我有一条显示内容列表的路线。 内容由子目录进行检索,并取决于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
然后应用程序正确运行并且模板未完全重新渲染(因此屏幕上没有剪裁)。