我是SAPUI5的新手,我正在做一些关于Master和Detail页面的练习。
我有2个视图, Master.view.xml 和 Detail.view.xml 。 Master.view.xml 包含员工列表。当用户点击员工时,它将导航到详细信息视图。 Detail.view.xml 包含所选员工的详细信息。
每个视图都有相应的控制器。 我已将我的json模型放在 Master.controller.js 中。
如何在不传递数据的情况下从 Master.controller.js 访问json模型到 Detail.view.xml ?这甚至可能吗?
@keshet
这是我在母版页面中创建的列表:
<List xmlns="sap.m"
id="masterList"
headerText="{i18n>masterHeaderText}"
footerText="Updated: September 4, 2015"
items="{/employeeDetails}"
itemPress="" >
<StandardListItem xmlns="sap.m"
id="{empid}"
title="{name}"
description="{levelDesc}"
info="{cubeNo}"
type="Navigation"
tap="handleListItemPress" />
</List>
现在我正在尝试将StandardListItem的id更改为来自模型的员工的ID。但是出现错误,说我不能使用 empid 作为StandardListItem的id。我该怎么做?
答案 0 :(得分:6)
您可以全局声明您的模型,因此所有视图都可以访问它。 要定义全局模型:
var oModel = new sap.ui.model.json.JSONModel(oData);
sap.ui.getCore().setModel(oModel);
要在另一个视图中从模型中检索数据:
var oData = sap.ui.getCore().getModel().getData();
如果您想使用多个全局模型,也可以为模型命名:
var oModel = new sap.ui.model.json.JSONModel(oData);
sap.ui.getCore().setModel(oModel, "modelname");
var oData = sap.ui.getCore().getModel("modelname").getData();