创建一个新的 dataProcessor 实例并将其链接到甘特图
config | DataProcessorConfig | RouterFunction | RouterConfig | dataProcessor 的配置对象 |
object | 创建的 dataProcessor 实例 |
var dp = gantt.createDataProcessor({
url: "/api",
mode: "REST",
deleteAfterConfirmation: true
});
此方法接受以下类型之一的参数:
var dp = gantt.createDataProcessor({
url: "/api",
mode: "REST",
deleteAfterConfirmation: true
});
// entity - "task"|"link"|"resource"|"assignment"
// action - "create"|"update"|"delete"
// data - 包含任务或链接数据的对象
// id – 被处理对象(任务或链接)的 id
var dp = gantt.createDataProcessor(function(entity, action, data, id) {
switch(action) {
case "create":
return gantt.ajax.post(
server + "/" + entity,
data
);
break;
case "update":
return gantt.ajax.put(
server + "/" + entity + "/" + id,
data
);
break;
case "delete":
return gantt.ajax.del(
server + "/" + entity + "/" + id
);
break;
}
});
RouterForEntity 对象包含以下方法:
var dp = gantt.createDataProcessor({
task: {
create: function(data) {},
update: function(data, id) {},
delete: function(id) {}
},
link: {
create: function(data) {},
update: function(data, id) {},
delete: function(id) {}
}
});
所有路由函数应返回 Promise 或数据响应对象。这样 dataProcessor 才能更新数据库中的 id 并触发 onAfterUpdate 事件。
router = function(entity, action, data, id) {
return new gantt.Promise(function(resolve, reject) {
// … 一些逻辑
return resolve({tid: databaseId});
});
}
这种方式允许您使用 DataProcessor 将数据保存到 localStorage 或其他不依赖特定 URL 的存储,或者当不同服务器处理对象的创建和删除时使用。
默认情况下,DataProcessor 不处理资源和资源分配的更新。
您可以通过单独配置启用此功能。
在 v8.0 中添加了 deleteAfterConfirmation 选项
Back to top