乐趣区

关于sap:什么是-SAP-UI5-的-Smart-Field

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 词汇表中的术语。
退出移动版