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

Posted

技术标签:

【中文标题】Backbone.js - 按顺序插入新的视图项【英文标题】:Backbone.js - Insert new view item in order 【发布时间】:2012-02-11 16:58:31 【问题描述】:

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

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

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

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

谢谢,我的是一张桌子,所以我只需将li 更改为tr 就可以完美运行。再次感谢。

以上是关于Backbone.js - 按顺序插入新的视图项的主要内容,如果未能解决你的问题,请参考以下文章

Backbone.js:在视图之间导航 - 销毁和重新创建

使用 Gulp 按顺序连接脚本

寻找有关在Backbone.js中使用Parceljs的建议

渲染 Backbone.js 集合

Backbone.js - 导航时出现 404 jQuery 错误

如何正确渲染 Backbone.js 视图