关于 SAP UI5 应用 render2 实例异步创建的编码实现
2023-09-14 09:02:37 时间
本文是笔者这篇教程的详细解释:
默认的 async 标志位为 false:
默认的 renderer 名称为 Fiori2:
提取出 renderer 的配置:
只有一个 shell-home 的配置。
错误消息从这里报出来的:
Log.error("sap.ushell.Container.createRenderer() should always be called with bAsync:true.");
return getRendererInstance(sModule);
更改一下 index.html
的配置:
sap.ui.getCore().attachInit(() => sap.ushell.Container.createRenderer("fiori2", true).placeAt("content"))
然后就进入 async 分支了:
返回的是一个 Promise 对象:
改成这段代码:
果不其然,Promise resolve 之后,回调函数里返回的是一个 renderer 实例:
修改成如下代码后,问题消失:
sap.ui.getCore().attachInit(() => sap.ushell.Container.createRenderer("fiori2", true).then(
(oRenderer) => {
oRenderer.placeAt("content");
}
));
sap.ui.base.Object.extend是SAP UI5中的一种继承方式,用于创建一个新的对象类型,并基于现有对象类型创建子类型。它允许在创建自定义对象时继承现有对象的属性和方法,并扩展它们以满足特定需求。
使用sap.ui.base.Object.extend可以创建自定义对象类,这些类可以在SAP UI5应用程序中用作模型、控制器、视图等组件。这种方式还允许开发人员通过将属性和方法添加到新对象类中来扩展现有类,从而满足特定的需求。这样做可以避免在创建新类时重复编写相同的代码,从而提高代码的可重用性和可维护性。
使用sap.ui.base.Object.extend的基本语法如下:
var MyObject = sap.ui.base.Object.extend("my.namespace.MyObject", {
metadata : {
properties : {
// define properties here
},
events : {
// define events here
},
methods : {
// define methods here
}
},
constructor : function() {
// define constructor here
},
// define additional methods here
});
上述代码创建了一个名为my.namespace.MyObject的新对象类型,并基于sap.ui.base.Object类创建了一个子类型。新类型可以在metadata属性中定义属性、事件和方法,并可以在constructor函数中初始化对象。创建新对象类型后,可以使用以下语法创建对象实例:
var myObject = new my.namespace.MyObject();
相关文章
- 142. SAP UI5 的 TimePicker ,一个钟表外观的时间选择控件
- 使用 class sap.ui.core.UIComponent.createContent 创建 Component 实例
- SAP UI5 应用中 MockServer 的实例化方法
- 深入学习SAP UI5框架代码系列之五:SAP UI5控件的实例数据修改和读取逻辑
- SAP CRM One Order header extension的缓存机制设计原理
- 使用ABAP代码打印出某个用户某个时间段内使用过哪些SAP事务码
- 将您的基于 Accelerator 的 SAP Commerce Cloud Storefront 迁移到 Spartacus Storefront
- SAP Spartacus的版本机制
- SAP Spartacus Spinner控件显示原理
- SAP Spartacus Set Active BaseSite action执行的时间点 - Route路由触发方式
- SAP CRM 产品主数据和附件(Attachment)的模型关系
- SAP CRM WebClient UI on new focus工作原理
- SAP HANA Cloud 学习教程之二: 如何往SAP BTP 上 HANA Cloud 实例的数据库表里插入数据
- SAP成都研究院李三郎:SCP Application Router简介
- 如何在 SAP Business Application Studio 里创建 SAP UI5 应用并部署到 BTP 平台上
- SAP BTP Kyma Runtime dashboard 打开报缺少缺陷的错误消息该如何解决
- SAP CRM Fiori 应用 my Opportunities 的后台性能分析
- SAP Fiori Elements - Account F4 help - how value help dialog is populated
- SAP Fiori Elements - fragment load roundtrip
- SAP UI5 formatter的工作原理
- SAP Server Side JavaScript解决方案
- 关于SAP Kyma在国内的落地情况
- 如何在SAP Kyma的控制台里扩展新的UI
- 如何把nodejs应用和SAP云平台上的Redis实例做绑定
- SAP UI5里一个包含众多操作的OData请求url实例
- SAP Spartacus 如何使用 API 从浏览器 local Storage 读取数据