Backbone.js - 按顺序插入新视图项

时间:2012-02-11 16:58:31

标签: javascript view backbone.js

我使用与Backbone ToDo示例非常相似的代码 - http://documentcloud.github.com/backbone/docs/todos.html

在我将新模型插入集合后,我对集合进行了排序。 todo示例将新数据附加到视图的末尾

  var view = new TodoView({model: todo});
  $("#todo-list").append(view.render().el);

我想将模型数据根据其在集合中的位置插入到视图中,而不仅仅是最后一个位置。知道怎么做吗?

1 个答案:

答案 0 :(得分:6)

首先获取集合中新添加的模型的索引(排序后)。您可以使用下划线方法indexOf来获取它,即index = todoColl.indexOf(todo);

然后使用:eq()jQuery选择器获取当前位于列表中此位置的项目,并使用.before()新项目,即$("li:eq(" + index.toString() + ")").before(view.render().el);(假设视图呈现li元素)。小心,如果新项目是最后一个,则添加代码来管理案例(在这种情况下,jQuery选择器将为空)。