我正在使用 OpenUI5 和 Cordova 构建移动应用程序。此应用程序使用 OData 服务,但必须支持完整的离线功能。使用 Cordova 存储数据有很多选项,例如 LocalStorage、Web SQL 甚至 FileWriter。我还发现 OpenUI5 框架提供 jQuery.sap.storage 通过 LocalStorage 存储数据,但由于存储容量有限(5MB),我无法考虑此选项。
是否可以从OData服务请求整个数据模型并将其转换为JSON模型?因为如果有任何方法可以实现此目的,我可以使用 FileWriter 为模型中的每个实体(以及元数据文件)编写文件,并在应用程序离线时使用该模型。
有人尝试过做这样的事情吗?
已编辑
感谢您的回答...
我使用 Jumpifzero 提示将 OData 服务中的数据设置到 Json 模型中,如下所示:
var sServiceUrl = "http://address:port/DataService.svc/";
var odataModel = new sap.ui.model.odata.ODataModel(sServiceUrl, true);
var jsonModel = new sap.ui.model.json.JSONModel();
odataModel.read("/Dates", {
async: false,
success: function (odata, response) {
jsonModel.setData({ Dates: odata.results });
}
});
this.setModel(jsonModel);
最佳答案
您还可以使用 .read 方法读取每个实体集的 odata,无需任何过滤器。在提供给读取的成功函数中,您可以将 JS 对象放入 JSON 模型中。 您可以创建一个层,在线时从 odata 填充 JSON 模型,离线时从本地存储填充 JSON 模型。
关于javascript - 使用 OpenUI5 和 Apache Cordova 的本地存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26107307/