2016-04-21 44 views
0

我在sapui5中有一个Json模型 - //console.log(dModel);如何将数据推送到现有的sapui5模型

enter image description here

我的新数据的答复如下 - //console.log(response);

enter image description here

现在我想新的数据(仅数据部分)推到现有的模式,内部/ modelData /数据。

代码我想 -

sap.ui.getCore().getModel().getProperty("/modelData/data").push(response.data); 

此代码是推动数据,但作为 -

enter image description here

后19(原值),它是推动内部20中的所有对象为0 ,1,2 ......理想的方式应该在19之后,我应该得到20,21,22等等。

我需要做些什么改变才能得到这个,谢谢......请建议。

+0

什么是不是发生了什么? – Rayon

+0

看到最后一张图片所有的值都被推到了第20位 –

+0

我无法访问图片..你在控制台中发现任何错误吗?你可以在'.push'之后看到更新的数据吗? – Rayon

回答

0

试试这个:

for(var i = 0; i < response.data.length; i++){ 

     sap.ui.getCore().getModel().getProperty("/modelData/data").push(response.data[i]) 

    } 
3

如果需要新的项目添加到您的模型,你应该使用这样的:

var oModel = sap.ui.getCore().getModel(); 
var aData = oModel.getProperty("/modelData/data"); 
aData.push.apply(aData, response.data); 
oModel.setProperty("/modelData/data", aData); 

的差异首先检索与数据数组,添加到数组,然后设置属性与更新的阵列

编辑:好的,现在有道理:你正在向数组添加一个数组。使用'push'只是添加一个新的条目与你添加的任何对象。所以,你要添加一个条目(这恰好是一个数组) 见更新答案

+0

您好Qualiture,您的代码也给我与我的最后一个图像相同的模型,因为我希望数据推送为19,20,21等 –

+0

然后在response.data中接收到的响应不是一个适当的数组;检查response.data的返回值。我做这种'添加到模型数组'没有任何问题;-) – Qualiture

+0

嗨,是的,这也工作....谢谢你 –