不调用成功回调函数
Success callback function is not called
我正在构建一个简单的 backbone 应用程序,我的视图中的成功回调函数有问题。
这是一个代码
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函数上,query发送到服务器正确,但此后没有调用成功回调函数,用于导航到应用程序首页。
deleteUser 方法也会出现同样的问题。
任何想法是什么问题?谢谢!
这可能与您的服务器的响应类型有关,预期的响应是将在您的属性上设置的 JSON 对象,但如果响应与 "text" 不同, 解析失败。
这是一个 fiddle 用于使用模拟请求
的演示
https://jsfiddle.net/gvazq82/rdLmz2L2/1/:
$.mockjax({
url: "hello.php",
responseTime: 0,
//responseText: 'A text response from mock ajax'
responseText: '{"a": "a"}'
});
在此示例中,调用的错误函数在您的情况下并未发生,您的应用是否可能为 "Ajax" 调用定义了一些默认行为?
我需要更多信息才能确定此问题,但希望这能为您解决问题提供一些指导。
我正在构建一个简单的 backbone 应用程序,我的视图中的成功回调函数有问题。 这是一个代码
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函数上,query发送到服务器正确,但此后没有调用成功回调函数,用于导航到应用程序首页。 deleteUser 方法也会出现同样的问题。 任何想法是什么问题?谢谢!
这可能与您的服务器的响应类型有关,预期的响应是将在您的属性上设置的 JSON 对象,但如果响应与 "text" 不同, 解析失败。
这是一个 fiddle 用于使用模拟请求
的演示https://jsfiddle.net/gvazq82/rdLmz2L2/1/:
$.mockjax({
url: "hello.php",
responseTime: 0,
//responseText: 'A text response from mock ajax'
responseText: '{"a": "a"}'
});
在此示例中,调用的错误函数在您的情况下并未发生,您的应用是否可能为 "Ajax" 调用定义了一些默认行为?
我需要更多信息才能确定此问题,但希望这能为您解决问题提供一些指导。