6

私が開発しているBackboneアプリには、コレクションとモデル、および各アイテムに関連付けられたビューがあります。

https://gist.github.com/2255959

PostViewをクリックすると、予期せず、配線なしでコレクションでイベントが発生します。

イベントをモデルにバインドしてから、コレクションでイベントを発生させる必要があると考えました。そうではありませんか?コレクションは、子モデルを起動したイベントを自動的に継承しますか?

よくわかりませんが、ネストされたビューと関係があると思います。イベントは、内部だけでなく、両方の場所でバインドされている可能性がありelます。

4

1 に答える 1

15

細かいマニュアルから:

コレクション内のモデルでトリガーされるイベントは、便宜上、コレクションでも直接トリガーされます。

そうです、コレクションはすべてのモデルのイベントをリッスンして転送します。

たとえば、次のような単純な設定があるとします。

class M extends Backbone.Model

class C extends Backbone.Collection
    model: M

c = new C
c.on('change', (model, opts) -> console.log('Change on collection'))

これを行うc.first().set(...)と、イベントハンドラーがトリガーされます。

デモ: http: //jsfiddle.net/ambiguous/wwjnK/

于 2012-03-30T23:05:01.997 に答える