Я пробовал это много и много способов за последнюю неделю, но я не могу заставить обратные вызовы JSONStore работать последовательно. Я работаю над Mac под управлением Worklight 5.0.6. Я расскажу, что я считаю самым простым примером: код, созданный из генератора JSONStore Worklight с жестко закодированными значениями.События JSONStore не срабатывают
После инициализации коллекций и вызова функции типа findAll() не запускаются ни успешные, ни обратные вызовы отказа. У меня были обратные вызовы, но не последовательно или надежно. Я не могу объяснить, почему это в основном не работает.
Я пробовал это как с помощью рамки обещания jQuery, так и с устаревшими методами обратного вызова. В обоих случаях обратные вызовы не вызываются. Я также попытался вызвать destroy() в JSONStore, чтобы принудительно создать новое создание.
function initContactsCollection() {
if ((WL.Client.getEnvironment() === 'iphone' ||
WL.Client.getEnvironment() === 'ipad' ||
WL.Client.getEnvironment() === 'android') &&
typeof cordova !== 'undefined' &&
typeof WL.JSONStore !== 'undefined' &&
typeof jQuery !== 'undefined' &&
typeof jQuery.event.trigger === 'function') {
// var pwd = prompt('Enter your password');
var contacts = WL.JSONStore.initCollection("contacts",
{"agentId":"string","notes.isSuccessful":"boolean","firstName":"string","workPhone":"string","email1":"string","email2":"string"},
{
//password: pwd,
adapter : {
name: 'ams',
replace: 'updateContact',
remove: 'deleteContactNote',
add: 'addNewContact',
load: {
procedure: 'getContacts',
params: ["AA12345678910X-DB"],
key: 'contacts'
},
accept: function (data) {
return (data.status === 200);
}
}
});
contacts.promise
.done(function() {
WL.Logger.debug('[JSONStore] contacts is ready to be used.');
contacts.count().done(function(res){
if(res < 1){
customers.load();
}
});
})
.fail(function (errObj) {
WL.Logger.debug('[JSONStore]' + errObj.toString());
});
} else {
WL.Logger.debug('[JSONStore] Check your dependencies.');
}
} // end function
Просто быстрый комментарий, пожалуйста, посмотрите на [WL.JSONStore.init] (http://pic.dhe.ibm.com/infocenter/wrklight/v5r0m6/topic/com.ibm.worklight.help. doc/apiref/r_wl_jsonstore_init.html) в качестве непринужденной альтернативы [WL.JSONStore.initCollection] (http://pic.dhe.ibm.com/infocenter/wrklight/v5r0m6/topic/com.ibm.worklight.help .doc/apiref/r_wl_jsonstore_initcollection.html). – cnandreu