【问题标题】:how to push data to existing sapui5 model如何将数据推送到现有的 sapui5 模型
【发布时间】:2016-04-21 11:06:24
【问题描述】:

我在 sapui5 中有一个 Json 模型 - //console.log(dModel);

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

现在我想将新数据(仅数据部分)推送到 /modelData/data 内部的现有模型。

我正在尝试的代码 -

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

此代码正在推送数据,但作为 -

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

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

【问题讨论】:

  • 怎么回事?
  • 看最后一张图片所有的值都被推到了20日内
  • 我无法访问图像。您是否在控制台中发现任何错误?你能看到.push之后的更新数据吗?
  • 最后一张图片是更新后的,如果可能请检查图片...:)
  • "最后一张图片仅在更新后" ?没找到你!

标签: javascript json sapui5


【解决方案1】:

试试这个:

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

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

    }

【讨论】:

    【解决方案2】:

    如果您需要向模型中添加新项目,您应该像这样使用它:

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

    不同的是你先用数据检索数组,添加到数组中,然后用更新后的数组设置属性

    编辑:好的,现在说得通了:你正在向一个数组添加一个数组。使用“推送”只会添加一个包含您要添加的任何对象的新条目。因此,您要添加一个条目(恰好是一个数组) 查看更新的答案

    【讨论】:

    • 嗨,Qualiture,您的代码也给了我与上一张图片相同的模型,因为我希望将数据推送为 19、20、21 等等
    • 那么response.data中接收到的响应不是正确的数组;检查 response.data 的返回值。我一直在做这种“添加到模型数组”,没有任何问题;-)
    猜你喜欢
    • 1970-01-01
    • 2020-11-25
    • 1970-01-01
    • 1970-01-01
    • 2021-06-18
    • 1970-01-01
    • 2015-02-12
    • 1970-01-01
    • 2014-10-12
    相关资源
    最近更新 更多