Blaze模板与jQuery.sortable冲突

时间:2017-01-01 04:11:50

标签: javascript jquery-ui meteor meteor-blaze

我有一个有趣的问题:

我的Meteor系列有一个排序列。我的Blaze模板助手在渲染之前对集合进行排序。

此集合绘制一组可排序的行,按$('rowset').sortable();排序。

我有一个onStop事件,然后读取新的子布局并使用新的sort字段更新Meteor集合。

然后,更改会触发集合重新排序,并重新呈现模板。

然而,我发现Blaze试图提高效率,会读取集合序列的变化,而不是重新绘制所有行,它会通过对前一个顺序执行diff来重新排序它们。

不知道jQuery已经重新排序了行,新的结果顺序是错误的,直到我完全离开并重新输入该模板。

我找到的唯一解决方案是:

  

一个。清空集合,

     

湾重绘后,按新顺序重新填充集合,强制完全重绘并随后正确排序。

这个问题是行消失然后重新出现,给出了糟糕的演示。

我正在寻找一个更好的解决方案,或许可以告诉Blaze不要尝试重绘更新。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

如果要从数据库加载集合,则可以在获取数据时禁用被动行为:find({},{reactive: false})