在其他函数中引用onInit中初始化的本地jQuery.sap.storage

时间:2016-06-03 20:54:58

标签: sapui5

我尝试使用本地存储来存储整个工作流程中使用的变量。我在控制器的onInit函数中初始化本地存储,如下所示。

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

一旦启动它,如何在其他功能中访问该存储,如下面的addItem函数?

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

    }

其他所有东西(无论多么hacky;)都可以达到这一点,但我似乎无法绕过访问本地存储。我可以将它与sap.ui.core绑定,还是持久性的,因为我在onInit中的初始调用是没有意义的,并且可以随时访问本地存储?

感谢您对我的耐心,因为我对SAPUI5库非常陌生。

1 个答案:

答案 0 :(得分:0)

好的,听起来很简单。使用行

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

将数据放入本地存储中。干杯!