1

Backbone.js バージョン 0.9.2 のソース コードを調べると、

"_onModelEvent":

このメソッドは、モデルからコレクションへのイベントの転送 (バブルアップ) を担当します。

したがって、コレクションの一部であるモデルで何かを変更すると (「set」を使用)、change イベントが発生します。(add メソッドで) _onModelEvent メソッドがモデル (「all」) にバインドされているため、これはメソッドが呼び出されます。

また、「destroy」イベントをトリガーする destroy メソッドがあることもわかります。

しかし、作成者 (_onModelEvent の最初の行) は、イベント名が「追加」または「削除」であるかどうかを確認するのはなぜですか。通常、モデルに「追加」イベントはありませんか?

ぜんぜんわかりません。

誰か説明してくれませんか?

前もって感謝します

_onModelEvent: function(event, model, collection, options) {
  if ((event == 'add' || event == 'remove') && collection != this) return;
4

1 に答える 1

1

Backbone を使用すると、ネストされたモデル構造とコレクションを作成できます。したがって、モデルがコレクションであるコレクションを作成できます。それがチェックインの方法です:

したがって、注釈付きのソースから:

_onModelEvent:

セット内のモデルがイベントを発生させるたびに呼び出される内部メソッド。モデルの ID が変更されると、セットはインデックスを更新する必要があります。他のすべてのイベントは単にプロキシ スルーします。他のコレクションで発生した「追加」および「削除」イベントは無視されます。

モデルとしてコレクションがある場合。アイテムが子コレクションに追加/子コレクションから削除された場合、addまたはイベントは委任されません。その場合、子コレクションのみが変更され、親は変更されないためです。remove

于 2013-01-23T09:30:07.570 に答える