RequireJS를 사용하여 로컬 저장소 동기화에서 데이터 검색을 분리하려고합니다. 이렇게하려면 어댑터에서 데이터를 가져 와서 window.myData 개체에 저장하는 모듈이 있어야합니다. loadSuccess가 완료되면 window.myData에서 localStorage로 동기화를 실행하기 위해 다른 모듈을 전달합니다.Worklight 6.1 - 어댑터 호출시 요구 사항
내가 AdapterService.retrieveRoomsFromServer를 호출 할 때 ("존", "미상"), 작업등에 대한 호출이 완료하지만, 자바 스크립트 오류가있다 :
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) {}
};
});
감사합니다.
WL.Client.invokeProcedure를 사용하여 어댑터 프로 시저를 호출하려면 클라이언트 측 코드에서 requireJS를 사용하고 있습니다. – ptitjuju69