SAP UI5 如何对应 Angular 的 @Attribute,从 XML 声明、控件属性到 DOM 属性的完整辨析

SAP UI5 如何对应 Angular 的 @Attribute,从 XML 声明、控件属性到 DOM 属性的完整辨析 我们今天讨论的这个问题,看上去只是想在 SAP UI5 里找一个和 Angular@Attribute同名或同形的 API,真正容易出错的地方却在于,attribute 这个词在前端框架里至少可能指向三层完全不同的东西。它可能是模板源码里写下的 XML 或 HTML 特性,也可能是框架组件对外暴露的配置项,还可能是浏览器最终 DOM 节点上的原生 HTML attribute。Angular 的@Attribute只处理其中很窄的一层,而 SAP UI5 把这三层拆到了控件元数据、XML View 解析、CustomData、Renderer 和最终 DOM 输出中。只按名字去寻找,通常会得到一个似乎相似、实际语义错位的答案。答案可以先落到一句话上,SAP UI5 没有一个与 Angular@Attribute完全等价的装饰器,也没有一个公共机制,可以在控件构造函数参数前写上某个声明,然后由框架把宿主元素上的静态特性值注入进去。按照使用目的来寻找近似方案时,最常见的对应关系有三种。希望声明一个正式、类型明确、可绑定、可更新的控件输入时,应当使用 UI5 控件metadata中的properties。希望给某个控件实例附带一段不属于正式控件 API 的额外数据时,应当使用sap.ui.core.CustomData或sap.ui.core.Element的data()。希望把值真正写到浏览器 DOM 上,形成data-*形式的 HTML attribute 时,应当