我正在构建一个简单的主干应用程序,并且在View中有成功回调函数的问题。 下面是一个代码调用成功回调函数
var EditUser = Backbone.View.extend({
el: '.page',
render: function(option){
var that = this;
if(option.id){
that.user = new User({id : option.id});
that.user.fetch({
success:function(user){
var template = _.template($("#edit-user-template").html());
that.$el.html(template({user: user}));
}
});
}else{
var template = _.template($('#edit-user-template').html());
that.$el.html(template({user: null}));
}
},
events:{
'submit .edit-user-form': 'saveUser',
'click .delete': 'deleteUser'
},
saveUser: function(ev){
var userDetails = $(ev.currentTarget).serializeObject();
var user = new User();
user.save(userDetails,{success: function(){
router.navigate('',{trigger:true});
},
error: function(e){console.log(e);}
});
return false;
},
deleteUser:function(ev){
this.user.destroy({
success: function(){
router.navigate('',{trigger:true});
}
})
return false;
},
wait:true
});
在SaveUser功能,查询发送到服务器正确的,但在此之后,成功回调函数不叫,用于导航到应用程序的主页。 使用deleteUser方法会出现同样的问题。 任何想法是什么问题?谢谢!
这是不够的信息。我们不知道user.save()做了什么。 – pmandell
@pmandell它是一个Backbone.js模型,因此save()使用POST来与模型关联的URL。 – billjamesdev
@ volodymyr3131是否调用了“错误”方法?看起来应该是这样或那样的成功之一。您能否在浏览器的调试网络面板中观看此网络事务(在Chrome中点击F12)并查看响应代码是否为200ish?或者,您可以在成功和错误方法中添加警报,以查看正在调用的内容。 – billjamesdev