【发布时间】:2013-12-19 15:17:23
【问题描述】:
我的 Backbone、RequireJS 和 jQuery 移动应用程序出现了一些问题。 当我使用表单视图 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 个项目时,也会出现同样的问题。然后编辑第一个项目。
有人可以告诉我我做错了什么吗?
谢谢!
【问题讨论】:
标签: javascript jquery jquery-mobile backbone.js