2016-06-03 2 views
0

Ich versuche, lokalen Speicher zu verwenden, um Variablen zu speichern, die in einem Workflow verwendet werden. Ich initialisiere den lokalen Speicher in der onInit-Funktion meines Controllers wie unten gezeigt.Verweis auf lokales jQuery.sap.storage initialisiert in OnInit in anderen Funktionen

onInit: function() {  
     var data = { 
       "testItem" : [{ 
        "priority" : 1, 
        "title" : "test1" 
       }] 
      } 

     var oModel = new sap.ui.model.json.JSONModel(); 
     oModel.setData(data); 
     this.getView().setModel(oModel, "testModel"); 

     jQuery.sap.require("jquery.sap.storage"); 
     var oStorage = jQuery.sap.storage(jQuery.sap.storage.Type.local); 

     if(oStorage.get("myLocalData")){ 
      var oData = oStorage.get("myLocalData"); 
      oModel.setData(oData); 
     } 
} 

Sobald dies eingeleitet wurde, wie kann ich auf diesen Speicher innerhalb anderer Funktionen wie eine AddItem-Funktion unten zugreifen?

addItem: function(evt){ 
      var oView=this.getView(); 
      var newItem = oView.byId("input").getValue();  
      var oModel = oView.getModel("testModel"); 
      var oNew = { 
        testItem : {"priority" : 6, "title" :newItem } 
      }; 
      var oData = oModel.getData(); 

      oData.agendaItem.push(oNew); 
      oModel.refresh(true); 

      oStorage.put("myLocalData", oData); //this is where I'm unsure 

    } 

Alles andere (aber Hacky;)) arbeitet bis zu diesem Punkt, aber ich kann meinen Kopf nicht scheinen zu wickeln um diese lokalen Speicher zugreifen. Kann ich es mit sap.ui.core binden, oder ist es persistent, dass mein ursprünglicher Aufruf in onInit sinnlos ist und der lokale Speicher jederzeit zugänglich ist?

Ich schätze Ihre Geduld mit mir, da ich extrem neu in der SAPUI5-Bibliothek bin.

+0

Sie könnten auch 'localSorage-api' verwenden .. Das wäre noch einfacher .. – Rayon

+0

Wären Sie in der Lage, einen Link zu der Dokumentation dafür bereitzustellen? Ich würde gerne darüber nachdenken und ich bin sicher, dass andere es nützlich finden würden, wenn sie darüber stolpern. – Connor

+0

Kümmere dich um _google_ darüber ... – Rayon

Antwort

0

Ok, es ist so einfach wie es klingt. Verwenden der Zeile

jQuery.sap.storage(jQuery.sap.storage.Type.local).put("myLocalData", oData); 

Versetzt die Daten in den lokalen Speicher. Prost!

Verwandte Themen