Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sapui5 JSONModel:调用“时如何与现有数据合并”;“加载数据”;_Sapui5 - Fatal编程技术网

Sapui5 JSONModel:调用“时如何与现有数据合并”;“加载数据”;

Sapui5 JSONModel:调用“时如何与现有数据合并”;“加载数据”;,sapui5,Sapui5,我的SAP UI5应用程序控制器中有以下代码: var myView=this.getView(); var data1={“myDate”:new Date()}; oModel.loadData(“products.json”); oModel.setData(数据1); setModel(oModel); Where products.json-只是屏幕上表格的简单数据 因此,我只能在屏幕上看到products.json数据,并且在oModel(在调试中选中)中看到myDate的值为空

我的SAP UI5应用程序控制器中有以下代码:

var myView=this.getView();
var data1={“myDate”:new Date()};
oModel.loadData(“products.json”);
oModel.setData(数据1);
setModel(oModel);
Where products.json-只是屏幕上表格的简单数据

因此,我只能在屏幕上看到products.json数据,并且在
oModel
(在调试中选中)中看到myDate的值为空

在我注释loadData字符串的情况下,myDate值显示在屏幕上,看起来不错


我怎样才能一起使用它们?这种情况下的最佳实践是什么?

模型的
loadData
是一个异步过程,因此它将在您与
data1
同步设置后更新模型。 另外,
setData()
将擦除模型中已经存在的所有内容,因此最好使用
setProperty
并仅更新模型中的特定节点

从文件加载静态数据后,应添加静态数据:

oModel.attachRequestCompleted(function() {
    oModel.setProperty("/myExtraData", data1);
});

您添加的日期可通过
/myExtraData/myData

使用参数
setData()
将新数据与现有数据合并

API还有一个
bMerge
选项

oModel.setData({myDate:new Date()});
loadData(“products.json”,null,true,“GET”,/*bMerge*/true
//合并结果:
{
myDate:/*日期对象*/,,
产生:[/*…*/]
}

无需为
requestCompleted

注册事件处理程序。我知道bMerge选项,但如果没有attachRequestCompleted函数,它将无法工作。你的例子很好,非常感谢!
oModel.loadData("products.json");
var data1 = {
    "myDate": new Date()
};
oModel.attachRequestCompleted(function() {
   oModel.setData(data1, true);
});