7

'reset'イベントをトリガーせずにコレクションをリセットしようとしています。'reset'イベントと'add'イベントの両方をリッスンするようにコレクションを設定しました

@.listenTo(@options.muses, 'add', @addOne)
@.listenTo(@options.muses, 'reset', @addAll)

ボタンをクリックしたとき、最初にしたいのはコレクションをクリアすることです

optionButtonClicked: (e) ->
  e.preventDefault()
  target = @$(e.currentTarget)

  //step to clear out the collection
  @options.muses.reset({silent:true})

ただし、ロギングとチェックを行ったところ、「reset」イベントがまだトリガーされていた、つまり@addAll関数がまだ呼び出されていたことがわかりました。

ここで何かが足りませんか?silent:trueはリセットイベントを抑制することになっていますか?

4

1 に答える 1

13

reset は、models 1 と options 2 の 2 つのオプション パラメータを取ります。ドキュメントから: resetcollection.reset([models], [options]).

そのため、silent オプションを 2 番目のパラメーターとして渡す必要があります。

@options.muses.reset(undefined, {silent:true});
于 2013-01-18T08:43:51.807 に答える