1

我尝试在 Worklight 5.0.6 中使用 Adapter 初始化 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”*

任何人都可以帮助我吗?非常感谢。

4

1 回答 1

2

它看起来像以下已知问题:

PM85364:使用“.”在 Android 上首次启动后出现 JSONSTORE 错误 在搜索领域。. 要修复它,请升级到 5.0.6.1 Fix Pack ( Source )。

通常:

-2 PROVISION_TABLE_SEARCH_FIELDS_MISMATCH

destroy如果不使用新的搜索字段调用orremoveCollectioninitor ,您将无法更改搜索initCollection字段。如果您更改搜索字段的名称或类型,可能会发生此错误。例如:{key: 'string'}{key: 'number'}{myKey: 'string'}{theKey: 'string'}

文档在这里。我还推荐这个关于 JSONStore 调试的StackOverflow 答案。

这可以解决您面临的问题:

重置模拟器或模拟器和/或调用 WL.JSONStore.destroy()。

于 2013-05-23T03:45:02.620 回答