【发布时间】:2013-05-26 00:20:21
【问题描述】:
这是按喜欢排序的列表。
只要 cursor(barvy.find({}, {sort:{likes: -1}})) 定义的数据发生变化,Meteor 模板和反应系统就会自动重新渲染 html 模板。所以现在屏幕列表总是按“喜欢”排序。如果第一个项目有 50 个赞,第二个项目有 50 个赞,我将一个赞添加到第二个项目,然后它移动到屏幕上的第一个位置,因为光标像第一个项目一样返回它。
我的问题是:如何在有序列表中向上移动的项目上显示向上箭头,在向下移动的项目上显示向下箭头?因为 DOM 元素的创建是由 Meteor 处理的,所以我不知道如何获取有关哪些元素改变了它们的位置的信息。
Template.poradi.barvy = function () {
return barvy.find({}, {sort:{likes: -1}});
};
HTML模板:
<body>
{{> poradi}}
</body>
<template name="poradi">
<h2>Poradi</h2>
<ul>
{{#each barvy}}
<li>{{barva}}, {{likes}} <input type="button" id="button_{{barva}}" value="like" /></li>
{{/each}}
</ul>
</template>
【问题讨论】:
-
当用户通过单击箭头手动对项目进行排序时,您是否打算以某种方式修改数据库,或者您希望该排序顺序对用户来说只是临时的和本地的?跨度>
-
大卫:没有用户不会通过点击箭头对项目进行排序。用户添加“点赞”(点击点赞按钮),流星自行排序,因为游标查询中的游标按“点赞”排序。这些箭头应该显示哪些项目在向上方向改变了它们的位置(只是为了让用户视觉检测某些项目变得更好(更多喜欢)。
-
啊,好吧,从提出问题的方式来看,这真的不清楚。希望我的回答会有所帮助...
标签: javascript meteor