Backbone.js 主干正在模型URL中插入查询字符串。我该怎么阻止它?
我有一个像这样的主干模型 我有一个模板,可以在表单中打印出地址。模板由在其“render”函数中传递地址id的视图呈现。通过类似于“address/:id”的路由到达视图 视图如下所示:Backbone.js 主干正在模型URL中插入查询字符串。我该怎么阻止它?,backbone.js,backbone-views,backbone-routing,Backbone.js,Backbone Views,Backbone Routing,我有一个像这样的主干模型 我有一个模板,可以在表单中打印出地址。模板由在其“render”函数中传递地址id的视图呈现。通过类似于“address/:id”的路由到达视图 视图如下所示: var AddressView = Backbone.View.extend({ el: $('#myclass'), render: function(options) { var that = this; var addr = new A.add
var AddressView = Backbone.View.extend({
el: $('#myclass'),
render: function(options) {
var that = this;
var addr = new A.address({id: options.aid});
addr.fetch({
reset: true,
success: function(address) {
var template = _.template(ATemplate, {address: address});
that.$el.html(template);
}
});
return this;
},
events: {
'submit .edit-address-form': 'editAddress'
},
editAddress: function(ev) {
//serializeObject creates JSON object from form data
var addressDetails = $(ev.currentTarget).serializeObject();
addr.save(addressDetails, function(addr) {
R.router.navigate('', {trigger: true});
});
return false;
}
});
return {
addressView: new AddressView()
};
}))
有两个问题。第一个问题是永远不会调用“editAddress”函数,即使类名正确且按钮类型=为“submit”
第二个问题是,当我提交地址表单时,URL是乱码的,在基本URL和/#/address之间插入一个查询字符串,如中所示
http:///ldmanclient/address=2500+莫菲特+图书馆和地址2=加州大学+加州大学%2C+伯克利&城市=伯克利&邮政编码=94720&mailcode=6000&aid=1#/address/1
以前有人见过这种行为吗?我做错了什么?正如mu所说,表单是在主干到达之前以标准方式提交的。尝试阻止提交操作:
editAddress: function(ev) {
ev.preventDefault();
// same code as above
}
你有没有想过???
editAddress: function(ev) {
ev.preventDefault();
// same code as above
}