2011-10-12 5 views
0

ではありません。変更が更新中で、ロギング@model.changedAttributes()になるとモデル「変更」が、それは私が眺めてい

class FancyView extends Backbone.View 
    template: #fancytemplate 

    initialize:() -> 
     @add() 
     @model.bind('change', @update) 

    add:() -> 
     $(@el).html($(@template).tmpl(@model.toJSON())).prependTo('#fancy') 

    update:() -> 
     $(@el).html($(@template).tmpl(@model.toJSON())) 

data下の変化を示しているが、@modelをログに記録することは、まだ古いデータを示しているので、何もアップデートで変化しません。

なぜ@modelはまだ古いデータですか?

+0

これは、モデルコードを表示せずにデバッグすることはできません。 – nrabinowitz

+0

申し訳ありませんが、 'データ下の変更を'データ全体のサブモデルに入れていたためです。 – fancy

+0

だから問題はまだ有効ですか? – nrabinowitz

答えて

1

もっと見るといいです...テンプレートはどのように見えますか?どのテンプレートエンジンを使用していますか?

私は、バットから1つの問題があると言うことができます...あなたのupdate機能の代わりに(->)の代わりに "太い矢印"(=>)を使用する必要があります。そうしないと、イベントが発生したときに@el@templateおよび@modelが間違ったコンテキストになります。

update: => 
    $(@el).html($(@template).tmpl(@model.toJSON())) 
+0

申し訳ありませんちょうどそれを固定しました、それはデータサブモデルに入れていたからです。 – fancy

+0

ありがとうございます! – fancy

関連する問題