你会怎么做这个
列表中的项目可以对应于集合中的记录,并且它们在列表中的位置可以对应于每个记录上的字段(“等级”),当“停止”事件发生时,该字段将必须被更新.
流星玩得很好用jQueryUI可排序吗?如果多个用户尝试一次拖动并排序相同的列表,会发生什么?流星需要定制排序行为?
解决方法
编辑:以下答案是过时的,@ cutemachine的答案或
http://blog.differential.com/sortable-lists-in-meteor-using-jquery-ui更接近于最先进的技术.
简短的答案是:如果你想要反应,这不容易.要制作一个非反应版本,只需将你的模板包装在一个{{#constant}}标签中,并以@bento建议的方式连接渲染中的jquery-ui sortable.
为了制作一个反应版本,你可排序的小部件将不得不处理它下面改变的事物(考虑在数据重新排序时中间拖动).这里有一些关于你将如何去做的想法:
>不幸的是,使动画变得不容易,这将导致可怜的用户体验.现在让我们离开吧.
>用以下类似的东西渲染项目:
{{#each items}}
{{>项目}}
{{/项目}}
当数据从服务器(没有动画)下来时,这将重新排序.
>设置渲染时可拖动的每个项目.你也可以
一世.使用像jquery-ui draggable这样的东西,并将其连接到项目模板的渲染中.如果排序从上游更改,则可能在执行此操作时遇到问题,因为底层元素可能在拖动期间消失.
II.实现您自己的拖动代码,也许使用较低级别的库.
>当一个项目被拖入位置时,立即在本地重新排列列表(这样用户应该看到正确的东西,希望服务器会尊重更改..但是我们也不会这样做).
我认为这样一个小部件有很大的需求,以流行的方式完成.这是在我的个人雷达(但是很多事情,包括一个很好的方式来重新排序与动画).