SAP UI5 manifest.json 里定义的 sap.ui.viewExtensions 区域的解析代码位置

简介: SAP UI5 manifest.json 里定义的 sap.ui.viewExtensions 区域的解析代码位置

笔者这篇教程介绍了如何在 SAP Fiori Elements 应用的 manifest.json 里注册 Extension fragment,从而给 List Report 应用的 Table 区域新增自定义列


10. 如何通过扩展(Extension)的方式给 SAP Fiori Elements List Report 的表格新增列

c9d6e1da79557eaf9966d7549db9e9d2.png

上图 extends 区域注册的 Extension 信息,运行时在 XMLPreprocessor.js 的 Component.getCustomizing 方法里解析出来。

74755d0c2681119aeffe123f0cd62a33.png

ddf29b603abaef120e6f2571cffbc897.png

在 SAP UI5 中,sap.ui.viewExtensions 是一个强大的机制,允许开发者在不修改原始视图代码的情况下,扩展或修改现有的视图。使用它,开发者可以添加新的控件,改变已有控件的属性,甚至替换整个视图的一部分。这提供了一种灵活的方式来定制和扩展现有的 SAP UI5 应用,而无需担心影响到原有的业务逻辑或者 UI 结构。

sap.ui.viewExtensions 的使用主要分为两部分:定义扩展点和实现扩展。


1、定义扩展点

在原始视图中,开发者可以定义一个或多个扩展点。扩展点是一个特殊的占位符控件,表示可以插入新的 UI 元素的位置。下面是一个简单的示例:

<mvc:View controllerName="sap.ui.demo.controller.View1" 
          xmlns:mvc="sap.ui.core.mvc" 
          xmlns="sap.m" 
          xmlns:core="sap.ui.core">
    <Page title="Title">
        <content>
            <core:ExtensionPoint name="ExtensionPointExample" />
        </content>
    </Page>
</mvc:View>


在这个示例中,core:ExtensionPoint 定义了一个名为 ExtensionPointExample 的扩展点。


2、实现扩展

一旦定义了扩展点,开发者就可以在另一个视图中实现扩展,通过 sap.ui.viewExtensions 来添加新的 UI 元素。这个过程通常在 manifest.json 文件中进行,如下所示:

{
    "sap.ui5": {
        "extends": {
            "extensions": {
                "sap.ui.viewExtensions": {
                    "sap.ui.demo.controller.View1": {
                        "ExtensionPointExample": {
                            "className": "sap.ui.core.Fragment",
                            "fragmentName": "sap.ui.demo.fragments.MyFragment",
                            "type": "XML"
                        }
                    }
                }
            }
        }
    }
}


在这个示例中,我们对 View1ExtensionPointExample 扩展点进行了扩展,插入了一个名为 sap.ui.demo.fragments.MyFragmentFragment。这个 Fragment 会在运行时替代扩展点在 UI 中的位置。

这样,即使在 SAP 更新或修改原始视图时,扩展的部分也不会受到影响,因为它们是在一个独立的文件中定义的,而不是直接修改原始代码。这使得应用程序更易于维护和升级。

相关文章
|
1月前
|
前端开发 搜索推荐 开发者
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
29 0
|
1月前
|
JavaScript 前端开发 开发者
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
17 0
|
1月前
|
Web App开发 数据采集 前端开发
纯技术讨论:如何让 SAP UI5 应用无法被别人在浏览器里调试 - 这种做法不推荐试读版
纯技术讨论:如何让 SAP UI5 应用无法被别人在浏览器里调试 - 这种做法不推荐试读版
15 0
|
1月前
|
XML 存储 数据格式
SAP UI5 控件 customData 属性的应用介绍
SAP UI5 控件 customData 属性的应用介绍
33 0
|
1月前
|
前端开发 JavaScript API
SAP UI5 sap.ui.require.toUrl 的作用介绍
SAP UI5 sap.ui.require.toUrl 的作用介绍
31 0
|
1月前
|
搜索推荐
如何让 SAP UI5 Smart Table 支持多项选择(Multiple-Selection)试读版
如何让 SAP UI5 Smart Table 支持多项选择(Multiple-Selection)试读版
19 0
|
1月前
|
JSON JavaScript 前端开发
C++ 智能指针与 JSON 处理:高级编程技巧与常见问题解析
C++ 智能指针与 JSON 处理:高级编程技巧与常见问题解析
271 0
|
22天前
|
存储
使用 ABAP 代码打印出 SAP CRM 系统里所有维护了 Sales Area 的 business partner id
使用 ABAP 代码打印出 SAP CRM 系统里所有维护了 Sales Area 的 business partner id
21 0
|
1月前
|
开发者 UED
SAP UI5 SmartFilterBar 中 ControlConfiguration Aggregation 的作用介绍
SAP UI5 SmartFilterBar 中 ControlConfiguration Aggregation 的作用介绍
14 0
|
18天前
|
存储 JSON JavaScript
「Python系列」Python JSON数据解析
在Python中解析JSON数据通常使用`json`模块。`json`模块提供了将JSON格式的数据转换为Python对象(如列表、字典等)以及将Python对象转换为JSON格式的数据的方法。
33 0

推荐镜像

更多