【发布时间】:2017-08-17 13:29:01
【问题描述】:
我在使用 Android 上的 JSONStore 时遇到了一些问题。使用 mfpdev app preview 可以正常工作。
初始化代码(运行成功):
let collections = {
workorders: {
searchFields: {id: 'integer'}
}
}
WL.JSONStore.init(collections).then((success) => {
console.log("Jsonstore init success");
},
(failure) => {
console.log("Jsonstore init failed", failure);
});
放置代码(不起作用,请参阅下面的错误日志):
put(data) : void {
console.log("JSONStore put function called: " + JSON.stringify(data));
if (!Array.isArray(data))
{
console.log("data is not array");
data = this.json2array(data);
}
if (Array.isArray(data)){
console.log("data is array");
}
let collectionName = "workorders";
let options = {
replaceCriteria: ['id'],
addNew: true,
markDirty: false
};
WL.JSONStore.get(collectionName).change(data, options).then((success)=> {
console.log("JSONStore put success");
},
(failure) => {
console.log("JSONstore put failed: " + JSON.stringify(failure), failure);
});
}
来自 android logcat 的错误:
03-24 15:29:36.656 8362 8362 I chromium: [INFO:CONSOLE(40796)] "JSONStore put function called: {"enddate":"2017-03-03","description":"测试工作订单 0","id":1,"ts":"Ban","status":"进行中"}",来源:file:///android_asset/www/build/main.js (40796) 03-24 15:29:36.656 8362 8362 D SystemWebChromeClient: file:///android_asset/www/build/main.js: 第 40798 行:数据不是数组 03-24 15:29:36.656 8362 8362 I chromium: [INFO:CONSOLE(40798)] “数据不是数组”,来源:file:///android_asset/www/build/main.js (40798) 03-24 15:29:36.657 8362 8362 D SystemWebChromeClient: file:///android_asset/www/build/main.js: 第 40802 行:数据是数组 03-24 15:29:36.657 8362 8362 I chromium: [INFO:CONSOLE(40802)] “数据是数组”,来源:file:///android_asset/www/build/main.js (40802) 03-24 15:29:36.662 8362 8362 D SystemWebChromeClient:file:///android_asset/www/build/main.js:第 40813 行:JSONstore 放置失败:{"src":"store","err":10, "msg":"BAD_PARAMETER_EXPECTED_DOCUMENT_OR_ARRAY_OF_DOCUMENTS","col":"workorders","usr":"jsonstore","doc":{},"res":{}} 03-24 15:29:36.662 8362 8362 I chromium: [INFO:CONSOLE(40813)] "JSONstore put failed: {"src":"store","err":10,"msg":"BAD_PARAMETER_EXPECTED_DOCUMENT_OR_ARRAY_OF_DOCUMENTS"," col":"workorders","usr":"jsonstore","doc":{},"res":{}}",来源:file:///android_asset/www/build/main.js (40813)
错误是BAD_PARAMETER_EXPECTED_DOCUMENT_OR_ARRAY_OF_DOCUMENTS,但是如果它还不是数组,我在我的代码中将其设为数组。
此外,我在 JSONStore 集合上找不到有关 change() 方法的任何文档,但我发现它用于此示例:https://mobilefirstplatform.ibmcloud.com/labs/developers/8.0/advancedmessenger/
谁能发现问题所在?
【问题讨论】: