-1

可能重复:
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)
4

0 回答 0