我使用的代码与 Backbone ToDo 示例非常相似 - http://documentcloud.github.com/backbone/docs/todos.html .
将新模型插入集合后,我对集合进行排序。 todo 示例将新数据附加到 View 的末尾
var view = new TodoView({model: todo});
$("#todo-list").append(view.render().el);
我想根据它在集合中的位置将我的模型数据插入到 View 中,而不仅仅是最后一个位置。知道如何做到这一点吗?
最佳答案
首先获取集合中新增模型的索引(排序后)。您可以使用下划线方法 indexOf
获取它,即 index = todoColl.indexOf(todo);
。
然后使用 :eq() jQuery 选择器获取当前位于列表中此位置的项目,然后 .before() 您的新项目,即 $("li:eq("+ index.toString( ) + ")").before(view.render().el);
(假设 View 呈现 li 元素)。小心,如果新项目是最后一个,请添加代码来管理大小写(在这种情况下,jQuery 选择器将为空)。
关于javascript - Backbone.js - 按顺序插入新 View 项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9242074/