2016-04-19 7 views
0

Ich versuche, einen JSONStore in einer MobileFirst 7.0 Hybrid-App zu erstellen. Das Problem, das ich habe, ist in der Lage zu erkennen, dass der JSONStore bereits bei späteren Läufen der App vorhanden ist. Die Dokumentation besagt, dass Sie WL.JSONStore.init (...) vor dem Aufruf von WL.JSONStore.get (...) aufgerufen haben müssen.So erhalten Sie einen bereits erstellten JSONStore in Mobilefirst

Also die Frage ist, bei nachfolgenden Läufen der App (was bedeutet, dass die App zum ersten Mal lief und den JSONStore erfolgreich erstellt) und dies ist ein neuer Lauf, was ist der richtige Weg zu prüfen, ob der JSONStore bereits existiert?

Wenn ich noch einmal init aufrufen muss, wie mache ich das, ohne das auszulöschen was da ist?

ich zur Zeit dieser Code-Snippet bin mit ...

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; 
} 

hier zu erkennen, ist der Code, den Laden schaffen ... es läuft erfolgreich.

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:"); 
} 

Antwort

-1

Durch erneutes Aufrufen der .init wird die bereits erstellte Sammlung nicht gelöscht. Nur durch Aufruf von .destroy wird die bereits erstellte Sammlung zerstört ... und so wird die nächste Init (neu) erstellt.

+0

Also, was ist die Syntax, um es mit init zu überprüfen und zu bekommen? – Tim

+0

Es ist eher eine benutzerdefinierte Implementierung, das zu überprüfen. Sie können ein Beispiel in der folgenden Datei sehen. Siehe die 'onlineAuthenticationSuccess()' Funktion: https://github.com/MobileFirst-Platform-Developer-Center/OfflineAuthentication/blob/release71/apps/OfflineAuthSample/common/js/main.js –

+0

Idan, Sie erwähnten "und so Bei der nächsten Initialisierung wird es (neu) erstellt. "... ist nicht der Punkt einer persistenten Sammlung, dass das Objekt beibehalten wurde und ich es nur holen kann? Wenn ich es jedes Mal neu erstellen muss ... dann wird es nicht wirklich beibehalten ... vielleicht war das eine falsche Annahme meinerseits? – Tim

Verwandte Themen