Fiori Elements XML 模版的 repeat 指令介绍

举报
Jerry Wang 发表于 2024/04/05 20:45:45 2024/04/05
【摘要】 Fiori Elements 应用的 XML 模版中的 var 属性保存循环变量的名称,该变量可用于访问重复子元素中的当前列表元素。 在预处理中,repeat 被其内容的多个克隆所取代,每个列表元素一个克隆,每个克隆再次被预处理,就好像它包含在定义循环变量的 with 指令中一样。以下示例根据模型元当前引用的元素中的 UI vocabulary 去迭代 identification an...

Fiori Elements 应用的 XML 模版中的 var 属性保存循环变量的名称,该变量可用于访问重复子元素中的当前列表元素。 在预处理中,repeat 被其内容的多个克隆所取代,每个列表元素一个克隆,每个克隆再次被预处理,就好像它包含在定义循环变量的 with 指令中一样。

以下示例根据模型元当前引用的元素中的 UI vocabulary 去迭代 identification annotation 中的所有字段,并显示每个字段的标签和内容。

无论列表绑定是指数据还是元数据,对于重复实现来说都是完全透明的。模板引擎正在将引用元数据的 template time 绑定表达式替换为引用数据的相应运行时绑定表达式。

例子中使用了格式化程序 .ui.model.odata.AnnotationHelper.format,它封装了 UI vocabulary.

例子如下:

<template:repeat list="{meta>com..vocabularies.UI.v1.Identification}" var="field">
  <Label text="{path: 'field>Label', formatter: '.ui.model.odata.AnnotationHelper.format'}" />
  <Text text="{path: 'field>Value', formatter: '.ui.model.odata.AnnotationHelper.format'}" />
</template:repeat>

这段代码使用了 Fiori Elements的模板标记语言,它通常用于定义UI组件和数据绑定。现在让我们逐行来看这段代码的含义,并举例说明。

  1. <template:repeat list="{meta>com..vocabularies.UI.v1.Identification}" var="field">

    • 这一行是一个模板重复标记,它用于在UI中重复显示一组元素。在这个模板中,它指定了一个列表,该列表的数据源是通过路径 meta>com..vocabularies.UI.v1.Identification 获取的。meta 可能是一个上下文对象,用于从数据模型中获取元数据,而 com..vocabularies.UI.v1.Identification 则是指定了UI标识符的一组元数据。
    • 举例说明:假设我们有一个销售订单的数据模型,其中包含了订单的详细信息。在这个模型中,可能有一个 Identification 元数据集合,它包含了订单的标识信息,比如订单号、订单日期等。这个模板会针对这个集合中的每个标识信息重复显示一组UI组件。
  2. <Label text="{path: 'field>Label', formatter: '.ui.model.odata.AnnotationHelper.format'}" />

    • 这一行定义了一个标签组件,用于显示字段的标签或标识。text 属性指定了该标签显示的文本内容,这个文本内容是通过路径 field>Label 获取的。同时,还指定了一个格式化器 .ui.model.odata.AnnotationHelper.format,它用于格式化显示的文本内容。
    • 举例说明:假设我们有一个订单号字段,那么这个标签组件就会显示"订单号"作为标签的文本内容。
  3. <Text text="{path: 'field>Value', formatter: '.ui.model.odata.AnnotationHelper.format'}" />

    • 这一行定义了一个文本组件,用于显示字段的值。text 属性指定了该文本显示的内容,这个内容是通过路径 field>Value 获取的。同样,也指定了一个格式化器 .ui.model.odata.AnnotationHelper.format,用于格式化显示的文本内容。
    • 举例说明:假设我们有一个订单号字段,那么这个文本组件就会显示订单的具体号码,比如"SO123456"。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。