1

我有變化時觸發一個功能的骨幹模型..我想該功能鏈接到一個視圖..骨幹模式改變事件僅觸發一次

型號:

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工作得很好,這是令人困惑

+0

爲什麼不能在視圖中傾聽模型上的「更改」事件? – Dave

+0

我更新瞭如何測試它的問題..也許有錯誤嗎? – Stpn

回答

0

嘗試等到Collection.fetch()已經完成,開始擺弄系列中的型號:

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