如何使用布局管理器重新排序/排序嵌套视图而不重新渲染
How to re-sort / order nested Views with Layoutmanager without re-rendering?
我正在使用Backbone.Layoutmanager进行Backbone项目.js
我得到了一个带有嵌套 ReceiverView 的列表视图。
我的集合是无序更新的 - 我想对这些视图进行排序,但我不想重新呈现整个集合。(因为我在旧视图中丢失了旧数据/事件处理程序/图形实例。
如何解决?
ReceiverListView = Backbone.View.extend({
manage:true,
initialize: function(options){
_.bindAll(this, "renderReceiver","renderMe");
this.vent = _.extend({}, Backbone.Events);
this.collection.on('add', this.renderMe, this);
},
renderMe: function(model1){
this.collection.sort(this.collection.comparator);
this.insertView(new ReceiverView({model: model1})).render();
}
不需要手动调用排序方法。了解它: http://backbonejs.org/#Collection-sort
initialize: function () {
this.listenTo(this.collection, 'sort', _.bind(this.onSortCollection, this));
},
onSortCollection: function (collection) {
var views = {};
_.each(this.getViews(), function (view) {
if (view.model) views[view.model.cid] = view;
});
collection.each(function (model) {
var view = views[model.cid];
if (view) this.el.appendChild(view.el);
}, this);
}
希望这有帮助
相关文章:
- 使用JS或新查询对列表进行排序
- 如何强制对模态进行新渲染
- 跨浏览器d3.js SVG线条渲染日期排序
- 如何在渲染新视图之前关闭所有事件
- 扩展成员应用程序,包括新的路线,现在没有任何渲染
- React选择性地不将新道具传递给渲染对象
- 主干中的比较器在添加新模型时需要排序调用
- 插入按字母顺序、javascript或jquery排序的新列表
- 无法从jQuery可排序列表中删除新添加的项
- ajax重新渲染时获得新值
- 使用“可排序”时获取新元素信息
- JavaScript 将文本框存储中的值引入数组中,创建新数组进行排序
- React Native ListView 不会在排序或检索新数据后更新
- 使用 UI 可排序,在单击按钮时根据给定值将项目移动到新位置
- AngularJS:插入新项目后对列表重新排序
- jQuery dataTable 不会对新数据进行排序
- 如何使用布局管理器重新排序/排序嵌套视图而不重新渲染
- 在backbone.js中,如何使用新的模型数据更新视图,同时在没有完整渲染的情况下保持排序顺序
- 嵌套可排序新添加的项目不会移动
- 关注标签触发模糊事件后新渲染的文本输入