我尝试使用本地存储来存储整个工作流程中使用的变量。我在控制器的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库非常陌生。
答案 0 :(得分:0)
好的,听起来很简单。使用行
jQuery.sap.storage(jQuery.sap.storage.Type.local).put("myLocalData", oData);
将数据放入本地存储中。干杯!