• SAP OPEN UI5 Step7 JSON Model


    转载请联系vx:xiaoshitou5854

    JSON Model

    数据绑定,属于MVC中的M

    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");
          }
       });
    });
    
    • onInit是UI5生命周期里的一个方法,当controller创建完毕后,会调用它
    • sap/ui/model/json/JSONModel : 引入JSONModel库
    • var oData : 创建数据。数据的路径是recipient/name
    • var oModel : 创建JSONModel
    • this.getView().setModel(oModel) : 把创建的Model放到view里。

    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>
    
    • <Input value="{/recipient/name}" : 在画面上添加输入框。它的值"{/recipient/name}",就是找Model里的recipient/name,view和Model的值是绑定的,当输入框的值被修改后,Model的值也被自动修改。
    • description="Hello {/recipient/name}" : 输入框后面的描述
    • valueLiveUpdate="true" : 当在输入框输入时,实时反应到Model里。

    绑定的语法:{}

    webapp/index.html

    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="utf-8">
    	<title>SAPUI5 Walkthrough</title>
    	<script
    		id="sap-ui-bootstrap"
    		src="https://openui5.hana.ondemand.com/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-async="true"
    		data-sap-ui-resourceroots='{
    			"sap.ui.demo.walkthrough": "./"
    		}'
    		data-sap-ui-oninit="module:sap/ui/demo/walkthrough/index">
    	</script>
    </head>
    <body class="sapUiBody" id="content">
    </body>
    </html>
    
    • data-sap-ui-compatVersion="edge" :这句很关键,指明可以使用复杂的绑定语法

      如果没有指明,则"Hello {/recipient/name}"的写法是不好用的,只能用"{/recipient/name}这种语法。

    本人微信:xiaoshitou5854

  • 相关阅读:
    虚拟化技术总览
    UNIX环境高级编程笔记之高级I/O
    UNIX环境高级编程笔记之线程
    UNIX环境高级编程笔记之进程控制
    UNIX环境高级编程笔记之进程环境
    mysql中如何删除表上的索引?删除索引?
    linux环境中如何删除文件的前n行?
    linux环境中iostat命令的安装,解决-bash: iostat: command not found问题
    linux环境中安装iotop命令,解决-bash: iotop: command not found问题
    mysql初始化时报错bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory的处理
  • 原文地址:https://www.cnblogs.com/xiaoshiwang/p/14916226.html
Copyright © 2020-2023  润新知