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

Joe*_*Joe 4 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);
Run Code Online (Sandbox Code Playgroud)

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

mna*_*mna 6

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

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