这是我的ajax
$.ajax(
{
url: url,
type: 'post',
dataType: 'json',
data: {'id':'1','name':'user'},
success: function(result) {}
});
所以这里是ajax的基本设置,但我想在ajax中添加自定义选项showLoader
。那我怎么能实现呢?
$.ajax(
{
showLoader: true,
url: url,
type: 'post',
dataType: 'json',
data: {'id':'1','name':'user'},
success: function(result) {}
});
当ajax请求停止时, showLoader
将在ajax请求开始和结束时调用。
在showLoader中,会有一个图像。
任何帮助将不胜感激。
答案 0 :(得分:1)
服务类可以是这样的
var Services = function () {
this.showLoader = true;
this.post = function( route, param, callback, showLoader = true, successMessage = '', failCallback = null, errorMessage = '' )
{
this.showLoader = showLoader;
$.post( route, param )
.success(function(data){
if( successMessage.trim().length ) {
//notify successMessage
}
// if to have callback function call than
if( null != callback ) {
callback(data);
}
})
.fail(function(error, status, type){
if( null != failCallback ) {
//notify error callback if this exists
}
});
};
}
然后实现执行ajaxStart的方法并在类中停止并在运行之前验证this.showLoader属性是true还是false。
因此,在您的代码中,您可以发送ajax请求,如:
var service = new Service();
service.post('/user/add', form.serialize(), function(){}, false, 'User added successfully!');
我建议您在页面加载器的开头使用javascript创建实例新Service(),以便每次需要发送ajax请求时都不需要创建新实例。
这是一种方法,现在让你自己实现!