如何在Mobilefirst中获取已创建的JSONStore

时间:2016-04-19 19:21:53

标签: ibm-mobilefirst jsonstore

我正在尝试在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:");
 }

1 个答案:

答案 0 :(得分:-1)

再次致电.init不会擦除您已创建的收藏品。只有通过调用.destroy,才能销毁已经创建的集合......等等下一个init将被(重新)创建。