2012-02-11 17 views
4

我使用與Backbone ToDo示例非常相似的代碼 - http://documentcloud.github.com/backbone/docs/todos.htmlBackbone.js - 按順序插入新的查看項目

在向集合中插入新模型後,我對集合進行排序。待辦事項例如新數據添加到視圖

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

我想根據其在集合中的位置,而不僅僅是最後的地方插入我的模型數據到視圖的結尾。任何想法如何做到這一點?

回答

6

首先獲取集合中新增模型的索引(排序後)。你可以用下劃線方法indexOfindex = todoColl.indexOf(todo);來得到它。

然後使用:eq()jQuery選擇器獲取當前位於列表中此位置的項目以及.before()您的新項目,即$("li:eq(" + index.toString() + ")").before(view.render().el);(假設視圖呈現li元素)。小心,添加代碼來管理案例,如果新項目是最後一個(在這種情況下,jQuery選擇器將是空的)。

+0

謝謝,我的是一張桌子,所以我只需要將'li'改成'tr'就可以了。再次感謝。 – Joe 2012-02-11 18:23:01