什么是 SAP UI5 的 Smart Field

举报
汪子熙 发表于 2022/05/14 21:51:33 2022/05/14
【摘要】 SmartField 控件解释表示 OData 服务中的实体关系模型、数据类型、服务功能和注释的元数据,以自动生成底层内部控件并减少开发应用程序所需的代码量。在某些情况下,OData 实体派生自控件的绑定上下文。随控件更改或显示的 OData 实体的属性派生自控件的 value 属性。重要提示:SmartField 与所有 SAPUI5 智能控件一样,会检索和分析 OData 服务的元数据和...

SmartField 控件解释表示 OData 服务中的实体关系模型、数据类型、服务功能和注释的元数据,以自动生成底层内部控件并减少开发应用程序所需的代码量。在某些情况下,OData 实体派生自控件的绑定上下文。随控件更改或显示的 OData 实体的属性派生自控件的 value 属性。

重要提示:SmartField 与所有 SAPUI5 智能控件一样,会检索和分析 OData 服务的元数据和注释。 OData 元数据是其主要 API。这些 OData 服务不是 SAPUI5 框架的一部分,通常由应用程序的后端开发人员维护。

随着时间的推移,SmartField 可以发展并获得新功能。这意味着如果定义此更改的注释保留在后端元数据中,则其行为或功能可能会更改。要从新功能中受益,SAP UI5 应用程序应该能够适应后端元数据。因此,SAP 建议仅当开发人员可以完全控制应用程序的元数据时,才使用 SmartField.

Accessibility

出于互操作性和可访问性的原因,SmartField 控件必须由 sap.ui.comp.smartfield.SmartLabel 控件而不是 sap.m.Label 控件标记,因为 sap.m.Label 控件不知道内部结构 一个 SmartField 控件。 如果 SmartField 控件呈现在智能容器控件(例如 SmartForm 控件)中,则会自动生成 SmartLabel 控件以减少应用程序端所需的代码量。 但是,在其他情况下,当 SmartField 单独使用或在智能容器控件之外使用时,例如 SimpleForm 控件,在这些情况下不会自动生成 SmartLabel 控件。 尽管 sap.ui.comp.smartfield.SmartLabel 是私有/内部控件,但应用程序允许以下基本用途用于标记 SmartField 控件。

一个例子:

<sap.ui.comp.smartfield.SmartLabel labelFor="IDProduct"/>
<sap.ui.comp.smartfield.SmartField id="IDProduct" value="{ProductId}"/>

不建议单独使用 SmartLabel 控件。 只允许基本使用,不包括自动处理可见性。 如果单独使用,应用程序逻辑必须注意标签的可见性。

FieldControl

定义字段是强制的、隐藏的还是处于只读/可编辑模式。

实体数据模型 (EDM) 属性可以使用 OData V4 模型中的 com.sap.vocabularies.Common.v1.FieldControl 注释或 OData V2 模型中的 sap:field-control 注释动态注释,方法是提供到另一个属性的绑定路径类型为 Edm.Byte 的 EDM 属性,其在数据模型中的值可以是:

  • 0:表示该字段已隐藏。注意: Hidden 是不适用的同义词,不推荐使用,不要使用它来静态隐藏用户界面上的字段,而是使用静态 FieldControl 注释。

  • 1:表示该字段处于只读模式,其值不能更改。注意:要将 EDM 属性静态注释为只读,请改用 Org.OData.Core.V1.Computed 注释。

  • 3:表示该字段是可编辑的和可选的(默认)。

  • 7:表示从业务角度来看该字段是强制性的。此值并不意味着对 EDM 属性的值范围有任何限制。例如,为了限制值范围的使用,必须使用值为 false 的标准类型 facet Nullable 来排除空值,或者必须使用 Org.OData.Validation.V1 词汇表中的术语。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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