バックボーンに問題があります。フォームビューを2回使用すると、フォーム送信イベントが2回起動されます。それぞれの新しいビューがボディに追加され、前のビューが削除されます。そのためには、app.jsファイルでこのコードを使用します。
$(document).on("mobileinit", function () {
$.mobile.linkBindingEnabled = false;
$.mobile.hashListeningEnabled = false;
$(document).on('pagehide', 'div[data-role="page"]', function (event, ui) {
$(event.currentTarget).remove();
});
})
router.js
define([
'jquery',
'backbone',
'views/projects/ProjectsView',
'views/projects/AddProjectView'
], function($, Backbone, ProjectsView, AddProjectView) {
return Backbone.Router.extend({
routes: {
'addProject': 'addProject',
'editProject/:projectId': 'editProject',
'*actions': 'showProjects' // Default
},
addProject: function() {
new AddProjectView().render();
},
editProject: function(projectId) {
require([
"views/projects/EditProjectView",
"collections/ProjectsCollection",
"models/ProjectModel"
], function (EditProjectView, ProjectsCollection, ProjectModel) {
var projectsCollection = new ProjectsCollection();
projectsCollection.fetch();
var project = projectsCollection.get(projectId);
if (project) {
var view = new EditProjectView({model: project, projectsCollection: projectsCollection});
view.render();
}
});
},
showProjects: function() {
new ProjectsView().navigate();
}
});
});
コードを自分のウェブサイトのディレクトリにアップロードしました。 http://rickdoorakkers.nl/np2次の手順を実行すると、問題がわかります。
- プロジェクトを追加します
- 別の名前の2番目のプロジェクトを追加します
- それをクリックしてプロジェクトを開き、値を変更して保存します
- ご覧のとおり、プロジェクトを追加するイベントが開始され、変更される代わりにプロジェクトが追加されています。
- この同じ問題は、2つのプロジェクトを互いに変更しようとするときにも発生します。最初のプロジェクトは編集されます。
私が間違っていることを教えてくれる人はいますか?
ありがとう!