主干模型更改事件只触发一次

Backbone model change event only fires once

本文关键字:一次 模型 事件      更新时间:2023-09-26

我有一个骨干模型,它在更改时激发一个函数。。我想将该函数链接到视图。。

型号:

class App.Models.Tracker extends Backbone.Model
  urlRoot : '/api/trackers'
  initialize: ->
    @on('change', @update, this)

  update: ->
    console.log('changed in model')
    @trigger('update', this);

视图:

class App.Views.Tracker extends Backbone.View
  template: JST['trackers/tracker']
  initialize: () ->
    @model.on("update", @animate, this);
  render: ->
    $(@el).html(@template(tracker: @model))
    this
  animate: ->
    console.log('changed in view')
    progress = @model.get('progress')
    console.log(progress)

现在的情况是,每当模型发生变化时,都会调用模型中的"update"方法。但是视图中的"animate"方法在创建模型时只调用一次。。

我做错了什么?

编辑

也许我只是测试错了??

 trackers = new App.Collections.Trackers
 trackers.fetch()
 tracker = trackers.get(333)
 tracker.set({progress : 70})

333是创建的跟踪器的id。。。但以上内容不起作用。。JSFiddle确实工作得很好,这让

感到困惑

试着等到Collection.fetch()完成后再开始玩集合中的模型:

trackers = new App.Collections.Trackers
trackers.fetch({
  success: function(){
    tracker = trackers.get(333);
    tracker.set({progress : 70});  
  }
});