可能重复:
Backbone.js - 名称更改时未触发更改
我做了一个函数来学习骨干......为此,我在本地制作了一个“json”并在我的 fetch 函数中调用它。我也每 10 秒调用一次 fetch 函数。除此之外,在这两者之间,我手动更新我的“本地 json”,更改后fetch
应该让我更新的东西,但它没有让我。
我还添加了一个函数来触发,虽然名称发生了attribute
变化,但也没有在 josn 更新名称时触发
这两者都让我感到困惑,我没有一个好的教程来学习这个......任何人帮助我解决这个问题或建议我实现两者的正确方法?
代码 :
(function($){
var list = {};
list.model = Backbone.Model.extend({
defaults:{
name:'need the name'
}
});
list.collect = Backbone.Collection.extend({
model:list.model,
url : 'data/names.json',
initialize:function(){
this.fetch();
this.keepUpdate();
},
keepUpdate:function(){
var that = this;
var updateData = function(){
that.fetch();
myTimeout = setTimeout(updateData,10000);
}
var myTimeout = setTimeout(updateData,10000);
}
});
list.view = Backbone.View.extend({
initialize:function(){
this.collection = new list.collect();
this.collection.on("reset", this.render, this);
this.collection.on('change:name',function(){ console.log('name changed')}); // not triggers while i change the name attrb..
},
render:function(){
_.each(this.collection.models, function(data){
console.log(data.get('name')); // no update getting here..
})
}
});
var newView = new list.view();
})(jQuery)