Warum nicht Rückgrat Blick Erkennen-Modell Verpasst?

Habe ich Folgendes Backbone.js Modell und collection:

//Model 
lr.Event = Backbone.Model.extend({});

//Collection
lr.Events = Backbone.Collection.extend({
  model: lr.Event,
  initialize: function(models, options) {
    this.date = options.date;
  },
  url: function() {
    return '/events' + '?date=' + this.date.toString('yyyy-MM-dd');
  }  
});

Die verwendet werden, mit einer Ansicht und seine sub-view:

//View
lr.MapView = Backbone.View.extend({
  el: $('#wrapper'),
  initialize: function() {
    this.date = this.options.date;
    _.bindAll(this, "render", "addAllEvents", "addOneEvent", "showNextDay", "collectData");
    this.collectData();
  },
  events: {
    "click #next": "showNextDay",
  },
  collectData: function() {
    var that = this;
    if (this.collection) this.collection.reset();
    this.collection = new lr.Events([], { date : this.date });
    this.collection.fetch({
      success:  function(resp) {
        that.render();
        that.addAllEvents();
      }
    });      
  },
  showNextDay: function() {
    this.date = this.date.add(1).days();
    this.collectData();
  },
  addAllEvents: function() {
    this.collection.each(this.addOneEvent);
  },
  addOneEvent: function(e) {
    var ev = new lr.EventView({ 
      model:  e,
      parentView: this
    });
  },
  ...
});

//Sub-view
lr.EventView = Backbone.View.extend({
  initialize: function() {
    var that = this;
    this.model.bind('change', function() {
      console.log('foo');
      that.remove();
    });
  }
  ...
});

Ich versuche zu binden, sub-Blick auf änderungen an den zugeordneten Modell. Also ich würde erwarten, dass, wenn ich rufe this.collection.reset(), console.log('foo') aufgerufen werden würde. Ist es aber nicht. Ich habe console.loged die Sammlung vor, und ich, nachdem ich es zurückgesetzt, und es ist definitiv von "etwas für nichts", also ich nehme an, ich bin irgendwie Durcheinander die Bindung der sub-Ansicht auf das Modell.

Jemand den Fehler?

InformationsquelleAutor AdamVickers | 2012-02-14
Schreibe einen Kommentar