javascript - 使用 OpenUI5 和 Apache Cordova 的本地存储

标签 javascript jquery cordova sapui5

我正在使用 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/

相关文章:

javascript - 如何根据 JavaScript 条件更改标题颜色

javascript - 调用对象中的javascript动态方法

android - 使用 JQuery 和 PhoneGap 时的 SSL 查询

javascript - 如何使用 Jquery JS Cookie 检索 Cookie 值

javascript - 如何使用jquery查找名称中包含 ':'的xml元素?

javascript - Cordova Socket io xhr 轮询错误

cordova - ionic : Opening html content in Inapp Browser

javascript - 数组并显示为未定义

javascript - let 声明被提升但未初始化是什么意思?

javascript - 失去焦点/模糊时隐藏 DIV