我们的面板内容变得越来越复杂,现在是时候将面板内容移动到一个单独的视图中了。使用这种方法,应用程序结构更容易理解,应用程序的各个部分可以重用。

Preview

The panel content is now refactored to a separate view (No visual changes to last step)

Coding

You can view and download all files at Walkthrough - Step 15.

webapp/view/App.view.xml

<mvc:View

   controllerName="sap.ui.demo.walkthrough.controller.App"

   xmlns="sap.m"

   xmlns:mvc="sap.ui.core.mvc"

   displayBlock="true" >

   <App class="myAppDemoWT">

      <pages>

         <Page title="{i18n>homePageTitle}">

            <content>

               <mvc:XMLView viewName="sap.ui.demo.walkthrough.view.HelloPanel"/>

            </content>

         </Page>

      </pages>

   </App>

</mvc:View>

我们不会将面板及其内容直接放到App视图中,而是将其移动到一个新的单独的HelloPanel视图中。我们在面板的内容聚合中使用XMLView标记来引用它。

webapp/view/HelloPanel.view.xml (New)

<mvc:View

   controllerName="sap.ui.demo.walkthrough.controller.HelloPanel"

   xmlns="sap.m"

   xmlns:mvc="sap.ui.core.mvc">

   <Panel

      headerText="{i18n>helloPanelTitle}"

      class="sapUiResponsiveMargin"

      width="auto" >

      <content>

         <Button

            text="{i18n>showHelloButtonText}"

            press="onShowHello"

            class="myAppDemoWT myCustomButton"/>

         <Input

            value="{/recipient/name}"

            valueLiveUpdate="true"

            width="60%"/>

         <FormattedText

            htmlText="Hello {/recipient/name}"

            class="sapUiSmallMargin sapThemeHighlight-asColor myCustomText"/>

      </content>

   </Panel>

</mvc:View>

面板的全部内容现在添加到新文件HelloPanel.view.xml中。我们还通过设置XML视图的controllerName属性来指定视图的控制器。

webapp/controller/HelloPanel.controller.js (New)

sap.ui.define([

   "sap/ui/core/mvc/Controller",

   "sap/m/MessageToast"

], function (Controller, MessageToast) {

   "use strict";

   return Controller.extend("sap.ui.demo.walkthrough.controller.HelloPanel", {

      onShowHello : function () {

         // read msg from i18n model

         var oBundle = this.getView().getModel("i18n").getResourceBundle();

         var sRecipient = this.getView().getModel().getProperty("/recipient/name");

         var sMsg = oBundle.getText("helloMsg", [sRecipient]);

         // show message

         MessageToast.show(sMsg);

      }

   });

});

为了拥有可重用资产,onShowHello方法也从app控制器移动到HelloPanel控制器。

webapp/controller/App.controller.js

sap.ui.define([

   "sap/ui/core/mvc/Controller"

], function (Controller) {

   "use strict";

   return Controller.extend("sap.ui.demo.walkthrough.controller.App", {

   });

});

我们现在已经将所有东西移出app视图和控制器。应用程序控制器目前仍然是一个空存根,我们稍后将使用它来添加更多的功能。

Parent topic: Walkthrough

Previous: Step 14: Custom CSS and Theme Colors

Next: Step 16: Dialogs and Fragments

UI5-文档-4.15-Nested Views的更多相关文章

  1. iOS学习笔记(6)——翻译苹果文档About Windows and Views

    About Windows and Views 关于窗口和视图 In iOS, you use windows and views to present your application’s cont ...

  2. OpenCV训练分类器制作xml文档

    OpenCV训练分类器制作xml文档 (2011-08-25 15:50:06) 转载▼ 标签: 杂谈 分类: 学习 我的问题:有了opencv自带的那些xml人脸检测文档,我们就可以用cvLoad( ...

  3. 一键批量打印EXCEL、WORD文档

    一键批量打印EXCEL.WORD文档,本方法也可以打印同一个文档N份,可以批量打印A3.A4文档,包括单.双面打印等.希望能帮到广大朋友.请大家注重原创版权,不得在未经许可的下转载.传播,或者用来对同 ...

  4. 什么是API文档?--斯科特·马文

    有时候,软件开发人员想要的是自己的软件被其他应用软件所应用,而不是让人来操作.API使各种应用软件互相通信成为了可能. 从事API文档写作15年,我亲眼见证了API产品的崛起.各个公司开始搭建平台,希 ...

  5. MongoDB文档(二)--查询

    (一)查询文档 查询文档可以使用以下方法 # 以非结构化的方式显示所有的文档 db.<collectionName>.find(document) # 以结构化的方式显示所有文档 db.& ...

  6. rbac介绍、自动生成接口文档、jwt介绍与快速签发认证、jwt定制返回格式

    今日内容概要 RBAC 自动生成接口文档 jwt介绍与快速使用 jwt定制返回格式 jwt源码分析 内容详细 1.RBAC(重要) # RBAC 是基于角色的访问控制(Role-Based Acces ...

  7. 《Python学习手册 第五版》 -第15章 文档

    本章主要介绍Python中的文档,会通过多种方式来说明,如果查看Python自带文档和其他参考的资料 本章重点内容 1.#注释:源文件文档 2.dir函数:以列表显示对象中可用的属性 3.文档字符串 ...

  8. ABBYY FineReader 15新增智能PDF文档转换功能

    ABBYY FineReader 15(Windows系统)新增智能PDF文档转换功能,可自动检测导入PDF数字文档的文本层质量,确保转变为可编辑格式后的准确结果:从表单字段和文本框中提取文本,准确保 ...

  9. ABBYY FineReader 15 PDF文档查看功能

    PDF文档查看功能是ABBYY FineReader 15(Windows系统)OCR文字识别软件中PDF编辑器的一项基础功能,可供用户查看,搜索PDF文档,无需进入编辑模式,也可复制其中的文本,图片 ...

  10. ABBYY FineReader 15扫描和保存文档详解

    通过使用ABBYY FineReader 15 OCR文字识别软件的扫描和保存文档功能,用户可使用扫描仪或数码照相机获得图像文档,然后再转换为各种数字格式文档. 在"新任务窗口"中 ...

随机推荐

  1. Linux小问题以及解决方案

    1.Linux的时间有问题? ntpdate pool.ntp.org 2.要把一条命令开机执行开机 vim /etc/rc.local 添加要执行的命令 3.系统中网络进程的端口监听情况: nets ...

  2. python之 列表常用方法

    更多列表的使用方法和API,请参考Python文档:http://docs.python.org/2/library/functions.html append:用于在列表末尾追加新对象: # app ...

  3. hybrid app、react-native 区别

    hybrid app.react-native 区别: 项目 hybrid app react-native 组件 用HTML.CSS.JavaScript实现页面的制作,然后运行在Webview上( ...

  4. ERROR 1130 (HY000): Host '192.168.20.165' is not allowed to connect to this MySQL server

    问题 远程连接mysql时遇到如下问题: ERROR 1130 (HY000): Host '192.168.20.165' is not allowed to connect to this MyS ...

  5. eclipse一些操作记录

    1.eclipse debug的时候想知道一个表达式执行的结果值,可以选中,按ctrl+shift+i来看返回的结果值:   2.eclipse java build path有个source,将so ...

  6. PAT 乙级 1037 在霍格沃茨找零钱(20)C++版

    1037. 在霍格沃茨找零钱(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 如果你是哈利·波特迷,你会知 ...

  7. Monit安装与配置

    Monit安装与配置 monit 监控并自动重启服务 官方文档

  8. python Web开发你要理解的WSGI & uwsgi详解

    原文:https://www.jb51.net/article/144852.htm WSGI协议 首先弄清下面几个概念: WSGI:全称是Web Server Gateway Interface,W ...

  9. Nature | 光学CNN层替换传统CNN层,超省电

    CNN 计算效率的研究一直备受关注,但由于功率和带宽的严格限制,CNN 仍难以应用在嵌入式系统如移动视觉.自动驾驶中.在斯坦福大学发表在 Nature 旗下 Scientific Reports 的这 ...

  10. ECCV 2018 | UBC&腾讯AI Lab提出首个模块化GAN架构,搞定任意图像PS组合

    通常的图像转换模型(如 StarGAN.CycleGAN.IcGAN)无法实现同时训练,不同的转换配对也不能组合.在本文中,英属哥伦比亚大学(UBC)与腾讯 AI Lab 共同提出了一种新型的模块化多 ...