|
用data组件仿baasData调用baas服务:
新建一个名为ajaxbaas.js文件:
define(function(require) {
var $ = require("jquery");
var justep = require("$UI/system/lib/justep");
var ajaxbaas = {
//从后台读取单表数据
dataCustomRefresh : function(event,options){
var data = event.source;
// 构造请求参数
var params = {"columns" : justep.Baas.getDataColumns(data), //列定义,里面包含列名和列数据类型
"limit" : event.limit,// 分页信息 – 行数
"offset" : event.offset,// 分页信息 – 行偏移
"search" : options.search };// 检索关键字
// 请求成功后的回调方法
var success = function(resultData) {
// 通过event.options.append判断数据是否增量加载
var append = event.options && event.options.append;
// 加载返回数据到data
data.loadData(resultData, append);
if (options.success) {options.sucess(resultData);}
};
justep.Baas.sendRequest({"url" : options.url, // servlet请求地址
"action" : options.action,
"params" : params, // action对应的参数
"success" : success // 请求成功后的回调方法
});
},
//保存数据,options.params是data组件数组
dataCustomSave : function(options){
// 获取当前数据对象
var data = [];
for(var i=0;i<options.params.length;i++){
// 将数据集中已变更数据导出为JSON数据
data[i] = options.params[i].toJson(true);
}
var params = {"tables" : data};
// 请求成功后的回调方法
var success = function(resultData) {
// 保存成功后,必须调用data.applyUpdates(),用于数据集确认数据已更新\
for(var i=0;i<options.params.length;i++){
options.params[i].applyUpdates();
}
if (options.success)
{options.success(resultData);}
};
// 发送请求
justep.Baas.sendRequest({
"url" : options.url, // servlet请求地址
"action" : options.action, // action
"params" : params, // action对应的参数
"success" : success // 请求成功后的回调方法
});
}
}
return ajaxbaas;
}); |
|