繁体   English   中英

来自另一个控制器的SAPUI5 Access json模型

[英]SAPUI5 Access json model from another controller

我是SAPUI5的新手,我正在对“母版”和“详细信息”页面进行一些练习。

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

每个视图都有其对应的控制器。 我已将json模型放入Master.controller.js中

我如何在不传递数据的情况下从Master.controller.jsDetail.view.xml访问json模型? 这有可能吗?


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

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

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

您可以通过将模型设置为主模型来实现。 现在详细获取视图及其对应的模型。

主控制器

oModel = new sap.ui.model.json.JSONModel(oData); sap.ui.getView()。setModel(oModel);

详细信息或您想要的任何地方:

oModel = sap.ui.getView()。getModel();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM