当前位置: 首页 > news >正文

SAPUI5基础知识24 - 如何向manifest.json中添加模型(小结)

1. 背景

在上一篇博客中,我们总结了SAPUI5中模型的各种类型,并通过代码给出了实例化这些模型的方式。

其实,在SAPUI5中,我们可以通过在manifest.json 中添加模型配置,简化模型的初始化过程,并确保模型在应用程序启动时自动加载。

这样,就省去了手动实例化模型的动作,可以简化我们的程序设计逻辑。

2. 示例

2.1 定义数据源

首先,需要在 manifest.json中定义数据源"dataSources"。数据源可以是 OData 服务、JSON 文件等。

{"sap.app": {"id": "my.namespace","type": "application","i18n": "i18n/i18n.properties","dataSources": {"mainService": {"uri": "/path/to/odata/service/","type": "OData","settings": {"odataVersion": "2.0"}},"localData": {"uri": "model/localData.json","type": "JSON"}}}
}

2.2 关联数据源

接下来,需要在 manifest.json 中的 sap.ui5 节点下,定义模型并关联到数据源。

{"sap.ui5": {"models": {"": {"dataSource": "mainService","settings": {"defaultBindingMode": "TwoWay"}},"local": {"type": "sap.ui.model.json.JSONModel","uri": "model/localData.json","settings": {"defaultBindingMode": "OneWay"}},"i18n": {"type": "sap.ui.model.resource.ResourceModel","settings": {"bundleName": "my.namespace.i18n.i18n"}},"device": {"type": "sap.ui.model.json.JSONModel","settings": {"defaultBindingMode": "OneWay","data": {"isPhone": "{device>/system/phone}","isTablet": "{device>/system/tablet}"}}}}}
}

2.3 组件配置

完成上面的步骤后,需要在 Component.js 中,确保调用父类的 init 方法,这样模型会根据 manifest.json 中的配置自动初始化。

sap.ui.define(["sap/ui/core/UIComponent","sap/ui/Device"
], function (UIComponent, Device) {"use strict";return UIComponent.extend("my.namespace.Component", {metadata: {manifest: "json"},init: function () {// 调用父类的 init 函数UIComponent.prototype.init.apply(this, arguments);// 设置设备模型var oDeviceModel = new sap.ui.model.json.JSONModel(Device);oDeviceModel.setDefaultBindingMode("OneWay");this.setModel(oDeviceModel, "device");}});
});

2.4 数据绑定

通过以上步骤,就完成了模型的自动初始化。这样,在视图中,就可以通过数据绑定来直接使用这些模型了。例如:

<mvc:ViewcontrollerName="my.namespace.controller.Main"xmlns:mvc="sap.ui.core.mvc"xmlns="sap.m"><Page title="{i18n>title}"><content><Text text="{/name}" /><Text text="{local>/address/street}" /><Text text="{device>/isPhone}" /></content></Page>
</mvc:View>

4. 小结

本文总结了向manifest.json中添加模型的方式,并给出了具体的代码示例。

http://www.lryc.cn/news/416037.html

相关文章:

  • 操作系统---文件管理
  • C语言指针详解(三)目录版
  • 【AI资讯早报】AI科技前沿资讯概览:2024年8月6日早报
  • 等保测评中的密码技术与密钥管理
  • go语言flag库学习
  • 2024年必备技能:智联招聘岗位信息采集技巧全解析
  • 《机器学习by周志华》学习笔记-决策树-02
  • centos Python3.6升级3.8
  • 文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《基于竞价空间预测的虚拟电厂日前竞价策略》
  • Simulink模型开发中的一些自动化方法
  • RabbitMQ消费者消费消息失败处理
  • Apache Kylin分布式的分析数据仓库
  • informer中DeltaFIFO机制的实现分析与源码解读
  • 树莓派下,centos7amr64下,搭建目标检测开发环境,java语言
  • SpringBoot+Redis 发布与订阅
  • huggingface无法访问怎么办?一招教你解决,使用hf-mirror.com镜像站快速下载各种大模型
  • 如何用密码保护你的 WordPress 管理员 (wp-admin) 目录
  • java 程序包org.junit.jupiter.api不存在
  • 简单的docker学习 第4章 docker容器
  • 零基础入门转录组数据分析——机器学习算法之SVM-RFE(筛选特征基因)
  • Python酷库之旅-第三方库Pandas(067)
  • Spring快速学习
  • 【Web开发手礼】探索Web开发的秘密(十五)-Vue2(2)AJAX、前后端分离、前端工程化
  • Phalco安装过程以及踩的一些坑(mac环境)
  • Ubuntu修改双系统默认启动顺序
  • 高仲富:49岁搞AI,白天种菜卖菜,晚上学数学搞程序
  • 光线追踪(纹理映射)
  • 传统产品经理VS现在AI产品经理,你要学习的太多了,超详细收藏我这一篇就够了
  • C#使用Socket实现TCP服务器端
  • MTK联发科MT8766/MT8166安卓核心板性能参数对