SAPUI5从另一个控制器访问json模型

时间:2015-09-10 02:36:05

标签: json xml sapui5

我是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。我该怎么做?

1 个答案:

答案 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();