変更時に関数を起動する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)
何が起こっているのかというと、モデルが変更されるたびにモデルの「update」メソッドが呼び出されるということです。ただし、ビュー内の「animate」メソッドは、モデルの作成時に1回だけ呼び出されます。
何が間違っているのですか?
編集
たぶん私はそれを間違ってテストしているだけですか?
trackers = new App.Collections.Trackers
trackers.fetch()
tracker = trackers.get(333)
tracker.set({progress : 70})
333は作成されたトラッカーのIDです...しかし、上記は機能しません。JSFiddleは実際に正常に機能し、混乱を招きます。