대답은 예입니다. 하지만 ItemFileWriteStore를 서브 클래스 화해야합니까, 필요에 맞지 않습니까? .save()에 대한 간단한 설명이 이어집니다.
Clientside는 저장소에서/new/delete를 수정하지만 더러운 것으로 표시됩니다. 더러운 항목을 가지고 있지만, 가게는 사람들에게 참조를 유지하는 것이 있으므로 같은 :하지만,이 경우 발생하지 않습니다 서버로 요청을 보내는 이들 각각을 반복한다 (저장 호출에
store._pending = { _deletedItems: [], _modifiedItems: [], _newItems: [] };
), 어느 쪽도 없습니다 _saveEverything 또는 _saveCustom이 정의됩니다. WriteStore는 단순히 클라이언트 측 복귀 기능을 재설정하고 클라이언트 메모리에 저장합니다. See source 검색 "저장 :"기능을 : 당신이있을 것이라는 점을 감안, 짧은에서 OoCmS._storeAPI
이 보일러를 따라 여기
간단한 writeAPI 내 구현은, 그것의 붙박이 검증없이 사용하도록 수정해야 서버의 CRUD 패턴 :
new ItemFileWriteStore({
url: 'path/to/c**R**ud',
_saveCustom: function() {
for(var i in this._pending._newItems) if(this._pending._deletedItems.hasOwnProperty(i)) {
item = this._getItemByIdentity(i);
dxhr.post({ url: 'path/to/**C**rud', contents: { id:i }});
}
for(i in this._pending._modifiedItems) if(this._pending._deletedItems.hasOwnProperty(i)) {
item = this._getItemByIdentity(i);
dxhr.post({ url: 'path/to/cr**U**d', contents: { id:i }});
}
for(i in this._pending._deletedItems) if(this._pending._deletedItems.hasOwnProperty(i)) {
item = this._getItemByIdentity(i);
dxhr.post({ url: 'path/to/cru**D**', contents: { id:i }});
}
});
Now; 페이징에 관해서는, ItemFileWriteStore는 수퍼 클래스 mixins에서 페이지 매김을가집니다. 단지 두 가지 셋업으로 호출해야합니다. 하나는 스토어에서 직접적으로 서버가 서브셋 만 반환해야합니다. - 또는 서버가 쿼리를 반환하는 쿼리 케이 퍼빌리티가있는 모델에서 호출합니다. 풀세트.
var pageSize = 5, // lets say 5 items pr request
currentPage = 2; // note, starting on second page (with *one* being offset)
store.fetch({
onComplete: function(itemsReceived) { },
query: { foo: 'bar*' }, // optional filtering, server gets json urlencoded
count: pageSize, // server gets &count=pageSize
start: currentPage*pageSize-pageSize // server gets &start=offsetCalculation
});
감옥의 erat는 것들의 대부분을 지 웁니다
감사합니다, demonstrandum. :) – pratik