zoukankan      html  css  js  c++  java
  • UI5-文档-4.7-JSON Model

    现在我们已经设置了视图和控制器,现在是时候考虑MVC中的M了。

    我们将在app中添加一个输入字段,将它的值绑定到模型上,并将相同的值绑定到输入字段的描述上。描述将根据用户类型直接更新。

    Preview

     

    An input field and a description displaying the value of the input field

    Coding

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

     

    webapp/controller/App.controller.js

    sap.ui.define([
    
       "sap/ui/core/mvc/Controller",
    
       "sap/m/MessageToast",
    
       "sap/ui/model/json/JSONModel"
    
    ], function (Controller, MessageToast, JSONModel) {
    
       "use strict";
    
       return Controller.extend("sap.ui.demo.walkthrough.controller.App", {
    
          onInit : function () {
    
             // set data model on view
    
             var oData = {
    
                recipient : {
    
                   name : "World"
    
                }
    
             };
    
             var oModel = new JSONModel(oData);
    
             this.getView().setModel(oModel);
    
          },
    
          onShowHello : function () {
    
             MessageToast.show("Hello World");
    
          }
    
       });
    
    });

    我们向控制器添加一个init函数。onInit是SAPUI5的生命周期方法之一,在创建控制器时由框架调用,类似于控件的构造函数。 

    在函数内部,我们实例化JSON模型。模型的数据只包含“收件人”的一个属性,其中还包含名称的另一个属性。

    为了能够在XML视图中使用这个模型,我们在视图上调用setModel函数并传递我们新创建的模型。模型现在被设置在视图上。

    消息toast只是显示了静态的“Hello World”消息。我们将在下一个步骤中展示如何加载翻译后的文本。

    webapp/view/App.view.xml

    <mvc:View
    
       controllerName="sap.ui.demo.walkthrough.controller.App"
    
       xmlns="sap.m"
    
       xmlns:mvc="sap.ui.core.mvc">
    
       <Button
    
          text="Say Hello"
    
          press="onShowHello"/>
    
       <Input
    
          value="{/recipient/name}"
    
          description="Hello {/recipient/name}"
    
          valueLiveUpdate="true"
    
          width="60%"/>
    
    </mvc:View>

      ▪大括号{…}表示数据取自接收方的对象名称属性的值。这就是所谓的“数据绑定”。加入sap.m.Input控件。这样,用户就可以输入收件人的问候语。我们使用XML视图的声明性绑定语法将其值绑定到SAPUI5模型:

      ▪/recipient/name在模型中声明路径。

    webapp/index.html

    <!DOCTYPE html>
    
    <html>
    
       <head>
    
          <meta http-equiv="X-UA-Compatible" content="IE=edge">
    
          <meta charset="utf-8">
    
          <title>Walkthrough</title>
    
          <script
    
             id="sap-ui-bootstrap"
    
             src="/resources/sap-ui-core.js"
    
             data-sap-ui-theme="sap_belize"
    
             data-sap-ui-libs="sap.m"
    
             data-sap-ui-compatVersion="edge"  
    
             data-sap-ui-preload="async"
    
             data-sap-ui-resourceroots='{
    
                   "sap.ui.demo.walkthrough": "./"
    
            }' >
    
          </script>
    
          <script>
    
             sap.ui.getCore().attachInit(function () {
    
                           sap.ui.xmlview({
    
                                   viewName: "sap.ui.demo.walkthrough.view.App"
    
                           }).placeAt("content");
    
             });
    
          </script>
    
       </head>
    
       <body class="sapUiBody" id="content">
    
       </body>
    
    </html>

      请注意:可以在脚本中使用data-sap-ui- compatversion ="edge",也可以使用data-sap-ui- bindingsyntax ="complex"。通过设置“edge”兼容模式,可以自动启用复杂的绑定语法。edge模式自动启用兼容性特性,否则必须手动启用这些特性。有关更多信息,请参见兼容性版本信息Compatibility Version Information.。value属性的绑定是一个简单的绑定示例,它只包含一个绑定模式。我们还可以将文本和绑定模式组合成更复杂的绑定结果,如description属性所示。为了能够使用所谓的复杂绑定语法,我们必须通过将引导参数data-sap-ui- compatversion设置为edge全局启用它。如果省略此设置,则只允许标准绑定语法,即“Hello {/ receiver /name}”将不再工作,而“{/ receiver /name}”将正常工作。

    Conventions

      • 变量名使用匈牙利符号。


    Parent topic: Walkthrough

    Previous: Step 6: Modules

    Next: Step 8: Translatable Texts

    Related Information

    Model View Controller (MVC)

    Data Binding

    JSON Model

    API Reference:sap.ui.define

  • 相关阅读:
    口袋摸球
    后渗透(四)数据包捕获
    后渗透(二)权限提升
    文件上传11-21
    MySQL之UDF提权
    《白帽子讲Web安全》读书笔记(一)
    XSS盲打获取cookies&&XSS钓鱼&&XSS键盘记录
    nginx目录穿越漏洞复现&&nginx目录遍历漏洞复现
    python教程(一)·简介
    DataPipeline如何实现数据质量管理?
  • 原文地址:https://www.cnblogs.com/ricoo/p/10101954.html
Copyright © 2011-2022 走看看