下面我有一个从 RESTful API 获取消息列表的集合。(我选择了一个集合,因为它最终会存储解析的数据。)
我的视图设置为监视集合中的变化(即收到新消息时)。但是,在存储新数据时,集合似乎不会触发更改或设置事件。我之前和之后都记录了 Collection 以确认其结果属性已更改。
几个问题:
- 为什么接收到唯一数据时不会发生“更改”事件?
- 我预计在我的 fetchMessages 函数上运行 setInterval 以不断检查来自服务器的更新数据。有没有更好的方法来检查 Backbone 中的更新?
谢谢你的帮助!
收藏
var AllMessages = Backbone.Collection.extend({
model: Message,
url: 'http://arestfulapi.com',
fetchMessages: function(){
var that = this;
this.fetch({
data: {
'order': '-createdAt',
'limit': 10
},
success: function(model, data){
// we want the array in data.results
that.set(data.results) // this should trigger a change event ?
}
});
}
});
看法
var MessageViewer = Backbone.View.extend({
initialize: function(){
this.collection.on('change',this.log,this); // does not get called from above
},
log: function(e){
console.log('triggered');
}
});
实例化
var allMessages = new AllMessages();
var messageViewer = new MessageViewer({collection:allMessages});