我尝试在Worklight 5.0.6中使用适配器初始化JSONStore Sync,如下所示:
var usersSearchFields = {"age":"integer","name.demo":"string"},
usersAdapterOptions = {
name: 'user',
replace: 'updateUser',
remove: 'deleteUser',
add: 'addUser',
load: {
procedure: 'getUsers',
params: [],
key: 'users'
},
accept: function (data) {
return (data.status === 200);
}
};
var collections = {
users : {
searchFields : usersSearchFields,
adapter : usersAdapterOptions
}
};
var options = {
username: 'carlos',
password: '123'
};
var usersCollection=WL.JSONStore.init(collections, options)
.then(function (res) {
logMessage('Collection has been initialized');
})
.fail(function (errobject) {
WL.Logger.debug(errobject.toString());
});
它在第一次成功运行但在我退出应用程序然后返回后,它会收到错误: 的 * “PROVISION_TABLE_SEARCH_FIELDS_MISMATCH” *
有人可以帮我吗?非常感谢你。
答案 0 :(得分:2)
看起来像以下已知问题:
PM85364: JSONSTORE ERROR AFTER FIRST LAUNCH ON ANDROID WITH '.' IN SEARCH FIELDS.。要修复它,请升级到5.0.6.1修订包(Source)。
典型地:
-2 PROVISION_TABLE_SEARCH_FIELDS_MISMATCH
如果不使用新的搜索字段调用destroy
或removeCollection
和init
或initCollection
,则无法更改搜索字段。如果更改搜索字段的名称或类型,则会发生此错误。例如:{key: 'string'}
到{key: 'number'}
或{myKey: 'string'}
到{theKey: 'string'}
。
文档为here。我还建议在JSONStore调试时使用this StackOverflow answer。
这解决了您所面临的问题:
重置模拟器或模拟器和/或调用WL.JSONStore.destroy()。