我正在构建一个简单的主干应用程序,并且在我的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方法出现同样的问题。 有什么想法是什么问题?谢谢!
答案 0 :(得分:1)
它可能与您服务器的响应类型有关,预期的响应是将在您的属性上设置的JSON对象,但如果响应不同,则为" text"例如,解析失败。
这是使用模拟请求进行演示的小提琴
https://jsfiddle.net/gvazq82/rdLmz2L2/1/:
options
在这个例子中,调用的错误函数在您的情况下没有发生,您的应用程序是否可能为" Ajax"定义了一些默认行为。呼叫?
我需要更多信息才能确定此问题,但希望这可以为您提供有关问题的一些指导。