繁体   English   中英

骨干模型更改事件仅触发一次

[英]Backbone model change event only fires once

我有一个Backbone模型,该模型会在更改时触发功能。我想将该功能链接到视图。

模型:

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)

发生的事情是,每次模型更改时,都会调用模型中的“更新”方法。 但是,创建模型时,视图中的“动画”方法仅被调用一次。

我怎么了?

编辑

也许我只是在测试错误?

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

333是创建的跟踪器的ID。。。但是上面的方法不起作用.. JSFiddle确实可以正常工作,这令人困惑

尝试等待,直到Collection.fetch()完成以开始使用Collection中的模型为止:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM