数组上的句柄设置为Backbone集合
Handle on array setted to Backbone collection
Folks,当Backbone集合接收到带有数据的数组时,我如何"捕捉"事件?我需要它来循环数据,并在某些条件下连接一些项。我有:
MyColl = Backbone.Collection.extend({
model : App.Models.Movie,
url: '/movies/start',
events : {
'then': 'show', // no one is calling
'fetch': 'show'
},
show: function() {
console.log(this.models);
console.log(this.collection);
}
});
在获取数据之后,当数据被收集时,我需要对数据做一些神奇的事情。谢谢你的回答。
我试过了所有这些,但都没用。。
Backbone.Collection.extend({
model : App.Models.Movie,
url: '/movies/start',
initialize: function() {
console.log(this.models);
this.models.on('change', this.print, this);
},
events: {
'add' : 'print',
'change': 'print',
'fetch': 'print'
},
print: function() {
console.log(this.models + '!!!!'); // HOW TO CALL THIS, WHEN DATA IS COMING TO THIS COLLECTION AFTER FETCH ?
}
});
从服务器获取连接时,请确保reset
为true:
col.fetch({reset: true});
然后注意集合中的reset
事件:
Backbone.Collection.extend({
events: {'reset': 'resetHappend'},
resetHappened: function() {
// whatever you need to do
},
// ...
Backbone.Collection.extend({
model : App.Models.Movie,
url: '/movies/start',
initialize: function() {
this.on('sync', this.joinItems, this);
},
joinItems: function() {
console.log('Now I could loop over the data');
console.log(this.models);
}
});
然后:
movies.fetch().then(function() {
var moviesView = new App.Views.MoviesView({collection: movies});
$(document.body).append(moviesView.render().el);
});
这正是我所需要的。感谢所有
相关文章:
- 如何使用backbone.js从集合中获取模型名称
- 2个backbone.js集合,具有相同的模型,但排序顺序不同
- Backbone.js批量更新集合
- Backbone+RequireJS:使集合持久化
- 如何更改与Backbone集合中的模型相关联的几个元素的css属性
- backbone.js可以't传递集合中的模型项's查看项目's视图
- 如何将会话数据从集合传递到视图?(Backbone JS/Coffeescapept)
- 将多级 mongodb 文档转换为 Backbone.js 模型/集合
- Backbone集合:如何从API中获取特定对象以放置在模型中
- 组织一个backbone.js集合
- 在集合中使用Backbone Deep Model
- Backbone.Model:多对多关系或将数组包装到集合中
- 数组上的句柄设置为Backbone集合
- 过滤后如何使用原始Backbone集合
- 模板没有'在Backbone集合中发生更改后,无法重新发送
- 如何通过fetch获取添加到Backbone集合的项目的索引
- 用json编码的php数组填充Backbone集合
- 我如何使用backbone集合解析方法在每个模型上设置自己的id
- 从Backbone集合中的每个Model中获取随机项
- 在从Backbone集合中过滤模型时维护索引