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

sp0*_*617 1 xml json sapui5

我是SAPUI5的新手,我正在做一些关于Master和Detail页面的练习.

我有2个视图,Master.view.xmlDetail.view.xml.该Master.view.xml包含员工的列表.当用户单击员工时,它将导航到详细信息视图.所述Detail.view.xml包含所选雇员的细节.

每个视图都有相应的控制器.我把我的json模型放在Master.controller.js中.

如何在不传递数据的情况下从Master.controller.js访问json模型到Detail.view.xml?这甚至可能吗?


@keshet

这是我在Master页面中创建的List:

<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>
Run Code Online (Sandbox Code Playgroud)

现在我正在尝试将StandardListItem的id更改为来自模型的员工的ID.但是出现错误,说我不能使用empid作为StandardListItem的id.我该怎么做呢?

kes*_*het 6

您可以全局声明模型,因此所有视图都可以访问它.要定义全局模型:

var oModel = new sap.ui.model.json.JSONModel(oData);
sap.ui.getCore().setModel(oModel);
Run Code Online (Sandbox Code Playgroud)

要在另一个视图中从模型中检索数据:

var oData = sap.ui.getCore().getModel().getData();
Run Code Online (Sandbox Code Playgroud)

如果要使用多个全局模型,还可以为模型命名:

var oModel = new sap.ui.model.json.JSONModel(oData);
sap.ui.getCore().setModel(oModel, "modelname");

var oData = sap.ui.getCore().getModel("modelname").getData();
Run Code Online (Sandbox Code Playgroud)