2012-04-23 18 views
0

を発射ないトリガー、私はバックボーンモデルイベント/チュートリアルのカップルでそれを見た

@model.on('change', @render, this) 

残念ながら変更イベントが発火し、それゆえ私のされていない私の見解では、次のコード行を実行しようとしていますビューは再レンダリングされません。

私はさまざまなイベントにバインドし、トリガー機能を使用していくつかのカスタムイベントを作成しようとしましたが、モデル上で何も起こっていないようです。さらに、コンソールからのエラーもありません。変更イベントは別のコレクションで正常に動作しています。私はルータ

place: (id) -> 
    @model = new GM.Models.Place({id: "#{id}"}) 
    @model.fetch 
    view = new GM.Views.Place(model: @model) 
    $('#container').html(view.render().el) 

から次のコマンドを実行しようとしているそして、私のモデルが設定されている:私は1.3.1

EDIT Zepto 1.0、BACKBONE.JS 0.9.2およびUnderscore.jsを使用しています

class GM.Models.Place extends Backbone.Model 
    urlRoot: '/mobile/place' 

誰もが以前同様の問題を経験していて、すばやい修正があるのだろうかと思います。 説明が見つからない場合は、コードをもっと必要としてください...

+0

変更イベントが発生すると予想しているものは何ですか? – bvulaj

+0

特定のモデルをフェッチすると、上に追加されたコードに従って変更イベントが発生するはずです。何かご意見は? –

+1

'.fetch()'の呼び出しは行います。 @ muの答えで説明されているように試してみてください。 – bvulaj

答えて

1

@model.fetchメソッドは実際にはどこにも呼び出されていません。この:

@model.fetch 

はあなたがメソッドを呼び出したい場合は、括弧または引数を追加する必要があり、メソッド呼び出しではありません。

@model.fetch() 
# or 
@model.fetch success: -> ... 
# etc. 

そうでなければ、あなただけのJavaScriptでthis.model.fetch;を生産し、doesnのことをしています何か役に立つものはありません。

+0

ありがとう!これを信じられない - ルーキーミス、まだCoffeescriptに慣れて...! –

+1

@socratic_singh:多くの人(私を含む)は、必要なときとそうでないときに心配することを避けるために、かっこを常に含んでいます。 –

+0

それは間違いなくhereoninからやっています。ありがとうございました –

関連する問題