更改文档中的子数组不会以正确的顺序重新呈现

时间:2014-10-23 18:36:56

标签: jquery-ui meteor meteor-blaze

我正在使用jQuery UI sortable来更新存储在容器文档中的数组的顺序。当排序触发"停止"方法,它重建数组并根据新的DOM布局对其进行排序。一切正常,更新后的文件反映了正确的顺序。然而,dom重新加载,订单又回到原来的状态。

当我在物理上刷新页面时,它实际上显示了正确的顺序。只是即时更改数组不会只是正确地重新渲染自己。

有趣的是,这个问题只出现在0.9.4中,所以它可能是流星的一个错误,只是不确定是否有影响我想要完成的改变。

如果需要,我会提供代码示例,但由于代码本身似乎正常工作且每次都没有更新以反映订单,我不确定它是否会提供帮助。

谢谢!

更新

我已将这个问题的独立演示放在一起,在下面的评论中列出:

好的,这是一个疯狂的例子:

演示:app-9ryym2m2.meteorpad.com

来源:meteorpad.com/pad/uQ42DRH95JcHtKnb9

尝试对项目进行一些排序,以查看问题的第1部分。接下来,在排序之后,尝试多次点击切换器,尤其是在您排序的项目列表中。这是问题的第2部分。现在,如果刷新页面,一切都会被抓住。笏。

双倍更新

感谢Github的结果,我得到了一个解决方案:https://github.com/meteor/meteor/issues/2944

通过更改我的子文档参考密钥' id'对于' _id',Blaze似乎接受了对排序的更改没有问题!

1 个答案:

答案 0 :(得分:0)

我承认我没有挖掘你的代码,但它的更新方式表明你正在恢复以前的状态而不是更新的状态。无论你在哪里拖动,最终状态都会反映你拖到的最后一个位置(即使它在你开始时可能在错误的位置)。也许是执行顺序/异步错误?

当火焰渲染引擎问世时,您是否看到了由Avital Oliver(Meteor核心开发)组成的拖放演示?您可以观看a video并查看the repo。如果您尝试演示并且在当前版本的Meteor上失败,您可以在那里提交问题并获得专业人士的支持:)