0

いくつかのチュートリアルで見たので、ビューで次のコード行を実行しようとしています

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

残念ながら、変更イベントが発生していないため、ビューが再レンダリングされません。

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

編集:ルーターから次を実行しようとしています

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

そして、私のモデルは次のように設定されています:

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

誰かが以前に同様の問題を経験していて、簡単に修正できるかどうか疑問に思っています。そうでない場合は、説明を見つけるためにさらにコードが必要な場合はお知らせください...

4

1 に答える 1

1

@model.fetch実際にはどこでもメソッドを呼び出しているわけではありません。これ:

@model.fetch

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

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

そうthis.model.fetch;しないと、JavaScript で作成しているだけで、何の役にも立ちません。

于 2012-04-23T19:46:12.843 に答える