在我的SAP UI5应用程序控制器中,我有以下编码。
var myView = this.getView();
var data1 = { "myDate": new Date() };
oModel.loadData("products.json");
oModel.setData(data1);
myView.setModel(oModel);
其中 产品.json - 只是屏幕上的表格的一个简单数据。
而我只能看到 产品.json 因此,屏幕上的数据,以及 我的日期 内含空值 oModel
在调试中检查)。
如果我评论 负载数据 弦。我的日期 值在屏幕上,看起来不错。
我怎样才能一起使用?这种情况下的最佳做法是什么?
模型的 loadData
是一个异步进程,所以它将在你设置了同步的模型后,用 data1
.还。setData()
会擦掉模型中的所有内容,所以最好使用 setProperty
并只更新模型中的一个特定节点。
您应该在从文件中加载静态数据后添加它。
oModel.attachRequestCompleted(function() {
oModel.setProperty("/myExtraData", data1);
});
您添加的日期就可以通过 /myExtraData/myData
将新数据与现有数据合并,使用 bMerge
的参数 setData()
.
oModel.loadData("products.json");
var data1 = {
"myDate": new Date()
};
oModel.attachRequestCompleted(function() {
oModel.setData(data1, true);
});
API loadData
还拥有 bMerge
选项。
oModel.setData({ myDate: new Date() });
oModel.loadData("products.json", null, true, "GET", /*bMerge*/true);
// Merged results: { myDate: /*date object*/, produces: [/*...*/] }
无需为 requestCompleted
.