SAP UI5 XML 视图在实例化时就已经确定了 BindingSyntax 的实现版本了

简介: SAP UI5 XML 视图在实例化时就已经确定了 BindingSyntax 的实现版本了

我有一个 SAP UI5 应用,在 index.js 里创建一个 XMLView 即 XML 视图的实例。

关于这个 index.js 的更多详细用法,在笔者这篇教程里有介绍:

8da6049b3c02f1b666f3c33353a62e6e_c5f5ba545c23f6e69c55df903fc4f6fd.png

在 XML 视图构造函数里,执行 applySettings 方法:

首先需要将 XMLView.create 方法传入的输入参数,即包含了 viewName 字段的 JSON 对象的值解析出了:

bindingInfo 的 get 方法自动被触发:


oBindingInfo = this.extractBindingInfo(oValue, oScope, !isObjectType(oKeyInfo.type));

一旦 bindingInfo 的 parse 方法被访问后,就会自动调用 Object.defineProperty 给 parse 属性设置的 get 方法:


上图就是 SAP UI5 确认 Parser 实现版本的逻辑,如果 Configuration 里的 bindingSyntax 值为 simple,get 返回的 parse 属性就为 bindingParser.simple, 反之返回 ComplexParser.


JavaScript 里通过 Object.defineProperty 设置的 get 函数的作用是什么?


在JavaScript中,通过使用Object.defineProperty方法可以定义一个对象的属性,并指定该属性的特性(属性描述符)。其中,可以指定get函数作为该属性的getter。


get函数是一个方法,它可以让我们在读取一个属性值的时候,自动触发一些逻辑。在使用get函数时,我们不需要在对象上直接定义一个属性,而是在属性描述符中使用get方法来定义一个属性的读取器。


下面是一个使用Object.defineProperty方法定义get函数的例子:

var person = {
  firstName: 'John',
  lastName: 'Doe'
};
Object.defineProperty(person, 'fullName', {
  get: function() {
    return this.firstName + ' ' + this.lastName;
  }
});
console.log(person.fullName); // "John Doe"

在上面的例子中,我们使用Object.defineProperty方法在person对象中定义了一个fullName属性,并指定了get函数。当我们读取fullName属性时,get函数会自动被调用,并返回firstName和lastName组成的完整名称。


在实际开发中,get 函数的应用非常广泛,比如在Vue.js中,就使用了get函数来监听数据变化并触发视图的重新渲染。使用 get 函数,可以使我们更加灵活地控制对象属性的读取逻辑,从而提高代码的可维护性和可读性。


相关文章
|
28天前
|
前端开发 搜索推荐 开发者
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
37 0
|
28天前
|
JavaScript 前端开发 开发者
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
22 0
|
28天前
|
Web App开发 数据采集 前端开发
纯技术讨论:如何让 SAP UI5 应用无法被别人在浏览器里调试 - 这种做法不推荐试读版
纯技术讨论:如何让 SAP UI5 应用无法被别人在浏览器里调试 - 这种做法不推荐试读版
34 0
|
28天前
|
XML 存储 数据格式
SAP UI5 控件 customData 属性的应用介绍
SAP UI5 控件 customData 属性的应用介绍
42 0
|
28天前
|
前端开发 JavaScript API
SAP UI5 sap.ui.require.toUrl 的作用介绍
SAP UI5 sap.ui.require.toUrl 的作用介绍
49 0
|
28天前
|
搜索推荐
如何让 SAP UI5 Smart Table 支持多项选择(Multiple-Selection)试读版
如何让 SAP UI5 Smart Table 支持多项选择(Multiple-Selection)试读版
26 0
|
28天前
使用 SAP UI5 Event Bus 机制,修复 SAP UI5 分页显示数据的一个 bug 试读版
使用 SAP UI5 Event Bus 机制,修复 SAP UI5 分页显示数据的一个 bug 试读版
30 0
|
28天前
|
存储 安全 测试技术
使用 Visual Studio Code 创建 SAP UI5 项目遇到 self-signed security certificate 相关问题
使用 Visual Studio Code 创建 SAP UI5 项目遇到 self-signed security certificate 相关问题
39 0
|
28天前
|
开发者 UED
SAP UI5 SmartFilterBar 中 ControlConfiguration Aggregation 的作用介绍
SAP UI5 SmartFilterBar 中 ControlConfiguration Aggregation 的作用介绍
22 0
|
1天前
|
存储 开发框架 JavaScript
深入探讨Flutter中动态UI构建的原理、方法以及数据驱动视图的实现技巧
【6月更文挑战第11天】Flutter是高效的跨平台移动开发框架,以其热重载、高性能渲染和丰富组件库著称。本文探讨了Flutter中动态UI构建原理与数据驱动视图的实现。动态UI基于Widget树模型,状态变化触发UI更新。状态管理是关键,Flutter提供StatefulWidget、Provider、Redux等方式。使用ListView等可滚动组件和StreamBuilder等流式组件实现数据驱动视图的自动更新。响应式布局确保UI在不同设备上的适应性。Flutter为开发者构建动态、用户友好的界面提供了强大支持。
18 2