検索ページと編集ページがあります。ユーザーを検索し、結果を取得したら、ユーザーを編集できます。私は CanJS を使用しており、ページごとにルートを定義しています。
, 'search route': function (data) {
new FormUserQuery('#formArea', {});
}
}
, 'edit/:id route': function (data) {
new FormUser('#formArea', {}).renderView(+data.id);
}
}
FormUser には、saveButton のクリック イベントがあります。ユーザーを検索してから編集ボタンを押し、何かを変更して変更を保存すると、正常に動作します。しかし、保存後に検索ページに戻って以前と同じことをすると、保存ボタンが 2 回呼び出されます。なぜこれが起こっているのか分かりません。私は何を間違っていますか?
編集 私はそれを機能させました。新しい編集ボタンをクリックするたびに、どういうわけかビューが別のビューの上に配置されていましたが、古いものを置き換えていませんでした。
だから私はこれを試してみましたが、うまくいきました:
, 'search route': function (data) {
if (typeof self.form === 'undefined')
{
self.form = new MegaControl.FormUserQuery('#formArea', {});
}
else {
self.form.destroy();
self.form = new MegaControl.FormUserQuery('#formArea', {});
}
}
, 'edit/:id route': function (data) {
if (typeof self.form === 'undefined') {
self.form = new MegaControl.FormUser('#formArea', {})
self.form.renderView(+data.id);
}
else {
self.form.destroy();
self.form = new MegaControl.FormUser('#formArea', {});
self.form.renderView(+data.id);
}
}