-1
我想用RequireJS將我的數據檢索與本地存儲同步分開。 爲此,我有一個模塊從適配器獲取數據並將其存儲到window.myData對象。 然後,當loadSuccess完成時,我傳遞另一個模塊以從window.myData到localStorage運行同步。Worklight 6.1 - 適配器調用中的requireJS
當我打電話AdapterService.retrieveRoomsFromServer(「約翰福音」,「母鹿」),以工作燈的調用完成,但有一個JavaScript錯誤:
TypeError: Cannot call method 'checkEndSynchro' of undefined
未定義似乎是SynchronizeLocalStorage傳遞函數RequireJS define()的參數。
我AdapterService.js:
define([
"jquery",
"synchronizeLocalStorage"
], function($, SynchronizeLocalStorage) {
return {
retrieveRoomsFromServer: function(username, password) {
this._invokeProcedureGetListRooms(username, password);
},
_invokeProcedureGetListRooms: function(user, password) {
var invocationData = {
adapter : 'MyHTTPAdapter',
procedure : 'getListRooms',
parameters : [user, password]
};
var options = {
onSuccess : this._loadSuccess,
onFailure : this._loadFailure,
invocationContext: this
};
WL.Client.invokeProcedure(invocationData, options);
},
_loadSuccess: function(result) {
var items = result.invocationResult.array;
var self = result.invocationContext;
WL.Logger.debug('loading users rooms');
for (var i = 0; i < items.length; i++) {
var id = items[i].id;
var name = items[i].name;
var room = {'id':id, 'name':name};
window.myData.myRooms.push(room);
}
window.flags.myRoomsLoaded = true;
SynchronizeLocalStorage.checkEndSynchro();
},
_loadFailure: function(result) {}
};
});
感謝您的幫助。
我在客戶端代碼上使用requireJS來調用WL.Client.invokeProcedure適配器的過程。 – ptitjuju69