我有一个可以用于本地JSON模拟数据测试的应用程序。 oData对象包含具有值的数组,应用程序将按需运行。 现在,我们正在使用SAP后端系统中的oData服务从本地Mockdata文件切换为数据消耗。 在这里,我在JSON对象中获取数据,而并非所有的功能初始化都能按需工作(示例过滤器功能)。
有人可以和我分享一些有关JSON对象和数组的想法吗? 以及如何从后端系统以数组而不是对象的形式获取数据?
在模拟数据版本中,我这样做来定义模型:
this._oModel = new JSONModel(jQuery.sap.getModulePath("myApplication", "/localService/mockdata/nodesSet.json"));
在oData版本中,模型是在manifest.json中定义的:
this._oModel = this.getOwnerComponent().getModel();
注意:我知道实体的不同名称(例如:nodes vs nodesSet),这不是问题的一部分。
谢谢!
答案 0 :(得分:0)
一种简单的方法是不在清单中创建模型,而在控制器中进行如下显式读取:
var oModel = new sap.ui.model.odata.v2.ODataModel(url, true);
that=this;
oModel.read( "/Products", {
urlParameters: {
"$skip": 0,
"$top": 50
},
success: function( oData) {
//here oData shall have an array of objects "results"
**-------------Set the model here using this array -> results ------**
},
error: function(oError) {
alert("error");
}
});
但是,我对这种解决方案并不感到骄傲,并将检查我是否可以发表更好的评论。