我正在尝试在Mobilefirst 7.0混合应用程序中创建一个JSONStore。我遇到的问题是能够检测到JSONStore已经存在于应用程序的后续运行中。文档说你必须在调用WL.JSONStore.get(...)之前调用WL.JSONStore.init(...)。
所以问题是,在应用程序的后续运行中(意味着应用程序第一次运行并成功创建了JSONStore)这是一个新的运行,检查JSONStore是否已经存在的正确方法是什么? / p>
如果我必须再次拨打init,我怎么能在不消除那些内容的情况下这样做呢?
我目前正在使用这段代码来检测...
function checkJSONStore() {
alert("In checkJSONStore");
var collectionName;
try {
// Check to see if JSONStore exists...
collectionName = WL.JSONStore.get('appStore');
} catch (e) {
// TODO: handle exception
alert("checkJSONStore: Exception = " + e.message);
}
alert("Returning from checkJSONStore: " + collectionName);
return collectionName;
}
以下是创建商店的代码......它成功运行。
function initJSONStore() {
console.log("In initJSONStore:");
var collectionName = "appStore";
var Data = {
item: 'newinstall',
value: 1
};
var JSONStoreCollections = {};
JSONStoreCollections[collectionName] = {};
JSONStoreCollections[collectionName].searchFields = {item: 'string'};
try {
console.log("Destroy any collections before we start");
WL.JSONStore.destroy().then(function () {
//handle success
console.log("initJSONStore: JSONStore destroy success");
})
.fail(function (error) {
//handle failure
console.log("initJSONStore: JSONStore destroy failure: " + error);
});
console.log("Calling WL.JSONStore.init");
WL.JSONStore.init(JSONStoreCollections).then(function () {
console.log("initJSONStore: JSONStore init success");
WL.JSONStore.get('appStore').add(Data).then(function () {
console.log("initJSONStore: JSONStore add success");
}).fail(function (error) {
console.log("initJSONStore: JSONStore add failure: " + error);
});
}).fail(function (error) {
console.log("initJSONStore: JSONStore init failure");
});
} catch (e) {
// TODO: handle exception
//console.log("initJSONStore: Exception = " + e.message);
alert("initJSONStore: Exception = " + e.message);
}
console.log("Exiting initJSONStore:");
}
答案 0 :(得分:-1)
再次致电.init
不会擦除您已创建的收藏品。只有通过调用.destroy
,才能销毁已经创建的集合......等等下一个init将被(重新)创建。