我有以下代码。它生成一个带有简单文本字段的表单。
<div class="nav-bar">
<a href="#home">Home</a>
<a href="#showform">Click here for the form</a>
</div>
<div id="theform">
<form>
<input type="text" name="data" id="data" />
<input type="submit">
</form>
</div>
用户输入一些数据后,他点击主页链接。Backbone 启动导航并调用 home 函数。
var AppRouter = Backbone.Router.extend({
routes: {
"home": "home",
"showform": "showtheform",
},
home: function() {
if (current_view) {
cuttent_view.remove();
}
current_view = new View_Home();
},
showtheform: function() {
// Code to show the form
}
});
在处理程序之后,表单消失了,未保存的更改仍然未保存(但之后无法保存)。在路由器功能中返回false
不会影响任何事情,网址仍然会发生变化。我如何 a) 防止 url 更改和 b) 询问用户是否要保存未保存的更改?