새로운 dataProcessor 인스턴스를 생성하고 gantt 차트에 연결합니다
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 - task 또는 link 데이터 객체
// id – 처리된 객체(task 또는 link)의 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를 사용해 특정 URL에 연결되지 않은 localStorage나 기타 저장소에 데이터를 저장하거나, 생성과 삭제를 서로 다른 서버가 처리할 때 유용합니다.
기본적으로 DataProcessor는 리소스와 리소스 할당 업데이트를 처리하지 않습니다. 이 기능은 별도의 구성으로 활성화할 수 있습니다.
deleteAfterConfirmation 옵션이 v8.0에 추가됨
Back to top