私はこれをできるだけ明確に表現しようとしています。
フォームを表示するビューがあります。次のように、イベントハンドラーを送信ボタンに関連付けています。
events: {
'click #bsubmit': 'save'
}
保存関数では、成功すると、移動する前にundelegateEvents()に注意します。
...
that.undelegateEvents();
window.router.navigate('#/home');
...
したがって、誰かがこのページにアクセスし、ページを送信してホームページに移動した場合(実際には:返送されます)、すべて問題ありません。
ただし、トップレベルのテンプレートの一部である「ホーム」リンクも表示されます。これは次のように指定されます。
<a href="#/home">Home</a>
したがって、誰かがこのページにアクセスし、ホームリンクをクリックして、(そこから)このページに戻ると、イベントが2回目にマップされます。これで、誰かがフォームを送信すると、2回送信されます。
私には多くのビューがあり、離れた場所へのナビゲーションはさまざまな方法で発生する可能性があることを考えると、ナビゲーションがより高い(制御できない)方法で発生する場合、undelegateEventsの一般的なパターンは何ですか?それとも私は根本的に間違ったことをしていますか?