簡體   English   中英

WL.JSONStore.push什么都不做

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM