[英]WL.JSONStore.push does nothing
我正在使用Worklight 6.2使用JSONStore和SQL適配器構建一個簡單的數據同步示例。 一切似乎都按照我想要的方式工作,除了“推”回適配器。 我的應用程序通過“ load()”提取數據。 我允許用戶選擇一個項目,更改它,然后在集合內“ replace()”。 但是,當我調用“ push()”時,什么也沒有發生。 沒有錯誤-娜達。 我希望這是一個簡單的“錯別字”問題,但現在我很困惑。
任何投入將不勝感激!
-bob-
起作用的東西:
WL.JSONStore.init(),
WL.JSONStore.load(),
WL.JSONStore.findAll(),
WL.JSONStore.find(),
WL.JSONStore.replace(),
WL.JSONStore.pushRequiredCount()
最后,最重要的是不起作用:
WL.JSONStore.push();
這是我的同步代碼:
function syncWithServer(){
// THIS FIRST PART WORKS - YAY!!!!!
console.log ("Check for dirty records");
WL.JSONStore.get(employeeCollectionName).pushRequiredCount()
.then(function (numberOfDirtyDocuments) {
alert("DIRTY: " + numberOfDirtyDocuments);
})
.fail(function (errorObject) {
alert (errorObject);
});
/ NOTHING HAPPENS AFTER THE LOG - JUST FALLS THRU TO THE LAST CONSOLE LOG
// NO ERRORS OR ANYTHING
console.log("Atempting to update server");
WL.JSONStore.get(employeeCollectionName).push()
.then ( function (res) {
alert("Server updated successfully");
})
.fail ( function (errorObject){
alert (errorObject);
});
console.log("HUmmmmmm .....");
}
您的應用程序似乎做對了,所以這可能是一個缺陷。 但是,從6.2開始不推薦使用push()和load()API,我認為,如果您遵循這種新方法,它將為您服務。
新方法是直接調用適配器。 這就是JSONStore在您調用push()或load()時所做的所有事情,同時將您限制在可以發送給它的參數上,因此直接調用適配器更有意義。 對於推送,您可以按以下方式編輯推送通話:
WL.JSONStore.get(employeeCollectionName).getAllDirty()
.then(function (dirtyDocs) {
return WL.Client.invokeProcedure({
adapter : 'people',
procedure : 'updatePeople',
parameters : [ dirtyDocs ]
});
})
.then(function (responseFromAdapter) {
// ... call markClean API after a valid response form the adapter
});
確保將參數,過程和適配器名稱更改為適配器的名稱。
另外,此答案是有關使用外部數據的文檔中內容的簡短總結,其中包括有關如何進行推入和拉入(加載)的示例。
也就是說,即使不推薦使用push()和load(),它們也應該可以正常工作,因此已經創建了一個缺陷來進一步研究該缺陷。
我從您的GitHub帳戶運行了您的測試應用程序,並且可以使用HTTP適配器正常運行它,並且回調可以正確返回。 使用SQL適配器(如果有)時會收到哪些日志。
[編輯〜8/6]我創建了一個SQL適配器,並且能夠從該適配器推入和拉出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.