封面图

关于现代浏览器的 back-and-forward 缓存机制

2023-01-16
阅读 2 分钟
795
setUpLocationChangeListener:设置位置更改侦听器。 这个侦听器检测从路由器外部触发的导航(例如,浏览器后退/前进按钮)并安排相应的路由器导航,以便触发正确的 guard event.
封面图

关于 Angular 应用对浏览器 Back 按钮支持问题的讨论

2023-01-16
阅读 2 分钟
526
Spartacus 项目里 RoutingService 的 back 方法实现。Visual Studio Code 的 peek reference 功能显示,没有其他代码调用了这个 back 方法。

CSS Flex 布局的引入背景

2022-12-25
阅读 1 分钟
691
Flexbox 布局(Flexible Box)模块(截至 2017 年 10 月的 W3C 候选推荐)旨在提供一种更有效的方式来布局、对齐和分配容器中 item 元素之间的空间,即使它们的大小未知和/或动态,这就是布局名称中 弹性 的由来。
封面图

SAP UI5 Smart Chart 功能介绍

2022-12-25
阅读 3 分钟
794
笔者已经写过一篇详细的文章介绍 SAP UI5 Smart Chart 的使用方法:SAP UI5 应用开发教程之一百五十三 - 使用 SAP UI5 Smart Chart 控件轻松绘制十数种不同类型的专业图表本文泛泛地介绍 Smart Chart 提供的一些其他功能。工具栏右侧的按钮可用于选择图表类型:跳转到按钮旁边的两个按钮可用于 drill up 和 drill down. ...
封面图

SAP UI5 Smart control 的 Page Variant Management

2022-12-25
阅读 1 分钟
576
本文介绍 VariantManagement 控件的页面变体,它是 SmartVariantManagement 控件的增强功能,可以处理多个智能控件。
封面图

Angular 模块封装概念常见的错误理解

2022-12-19
阅读 1 分钟
892
Angular 以类似于 ES 模块的方式引入了模块封装的概念。 它基本上意味着可声明的类型——组件、指令和管道——只能由在该模块内声明的组件使用。 例如,如果我尝试使用下面的代码在 App 模块的 App 组件内使用 A 模块中的 a-comp:
封面图

Angular RouterModule.forRoot(ROUTES) 和 forChild(ROUTES)的区别

2022-12-10
阅读 2 分钟
640
不少 Angular 初学者在学习 Angular 路由框架时,对 forRoot 和 forChild 这两个方法的差异都心生疑惑。Angular 官网对两个方法的解释:forRoot 创建一个包含所有指令、给定路由和路由器服务本身的模块。forChild 创建一个包含所有指令和给定路由的模块,但不包含路由器服务。但缺乏具体的例子。Module with providers当...
封面图

Angular 应用开发里使用 ForRoot 解决 Lazy Loaded Module 里单例行为丢失的问题

2022-12-10
阅读 3 分钟
664
我们想创建一个共享模块,它将包含一个配置来设置布尔值(作为标志)以启用或禁用其他模块的某些功能。 其他模块可以在 Angular 应用程序的引导期间加载,也可以是延迟加载的模块。
封面图

如何处理 Angular 单页面应用里的 a 标签,避免点击后重新加载整个应用

2022-12-05
阅读 2 分钟
460
问题描述客户已经实现了一些“free html”组件,它是 HTML 的标题和包装器,与 OCC 响应一起作为内容。 {代码...} 这个 HTML 里包含了 anchor element: {代码...} 不幸的是这个 a 标签导致页面重新加载并且不使用 Angular 路由,换言之,它会终止 SPA 的状态。 如何避免这种行为?比如实现一些侦听器并检查点击是否应该改...
封面图

SAP Success Factor Single Sign On(单点集成) 的文档清单

2022-12-05
阅读 1 分钟
459
[2088827 - [SSO] What methods of SSO (Single Sign On) does SuccessFactors Support?]([链接])
封面图

使用 SAP WebIDE 将 SAP UI5 应用部署到 ABAP 系统时遇到的关于传输请求的错误

2022-12-05
阅读 2 分钟
592
Failed to get transports for the selected package. Request POST /webidedispatcher/destinations/LND500/sap/bc/adt/cts/transportchecks failed: Forbidden
封面图

关于 SAP UI5 XML 视图里控件事件处理函数名称中的 . (点号) 问题的讨论试读版

2022-11-27
阅读 1 分钟
679
关于 XML 视图里控件事件绑定的处理函数名称,网络上找到的 SAP UI5 源代码,有的函数名前缀包含一个 ., 有的函数名中间通过 . 作为分割,有的函数名又根本不包含 ..
封面图

以前编写好能够正常运行的 SAP UI5 代码,几个月后忽然不能运行了该怎么办?

2022-11-27
阅读 5 分钟
643
以笔者本套教材为例,每一步骤的源代码都托管在本人 Github 仓库里,每次上传之前,都确保本地测试通过。但笔者编写过程中发现,之前测试通过的代码,可能几个月之后再执行,就会遇到白屏现象,即应用无法正常加载,或者无法在调试模式下正常加载。举个具体的例子。本文写作于 2022年11月20日,进入步骤 6,运行命令行 u...
封面图

SAP UI5 Table 控件数据进行 Excel 导出时如何进行格式控制试读版

2022-11-27
阅读 2 分钟
586
本教程的前一步骤,我们成功的将 sap.m.Table 控件里显示的数据导出到了本地 Excel 文件中。下图是使用 sap.m.Table 显示的表格页面:下面是点击上图右上角 Excel 导出按钮后,成功导出到本地的 Excel 文件打开后的内容:其实我们是可以自定义表格每一列导出到 Excel 文件时的显示风格的,例如下图 SAP UI5 Table 界面,...
封面图

SAP UI5 表格数据如何导出成 Excel 文件(Table Export As Excel)

2022-11-27
阅读 1 分钟
848
本教程前一步骤,我们在介绍 SAP UI5 SmartTable 时,提到了它的 Excel 导出功能。如果将 iseExportToExcel 设置为 true,就可以启用 Excel 导出功能,将 Table 控件显示的数据,导出成本地 Excel 文件。
封面图

SAP UI5 Gateway Export 和 Client Export 的比较

2022-11-27
阅读 1 分钟
669
SAP Gateway:如果有超过 100,000 个单元格或最多 500,000 个单元格,则显示警告,具体取决于会话和 ABAP 内存的配置。
封面图

使用 SAP UI5 sap.ui.export.Spreadsheet API 进行 Excel 导出的一些限制

2022-11-27
阅读 1 分钟
839
开发人员只能导出 sap.ui.export.EdmType 中列出的原始单元格数据类型,如下图所示:Excel Export API 不支持 UI5 表格单元格中的图标、图像、复选框和复杂控件。也不支持数据绑定中的自定义格式化程序。导出表的大小受可用浏览器内存的限制。导出大数据集可能会导致内存溢出错误。因此,请勿将 sap.ui.export.Spreadshe...
封面图

SAP UI5 sap.ui.export.Spreadsheet API 介绍

2022-11-16
阅读 2 分钟
462
本 API 创建一个新的电子表格导出对象。使用此对象从表格数据构建和下载 Office Open XML 电子表格格式的电子表格文件。此功能通常与 UI5 表一起使用。
封面图

关于 SAP UI5 控件内容的 Excel 导出功能,如何加载所需的导出工具库

2022-11-16
阅读 2 分钟
556
如果使用 SmartTable 控件导出数据,还可以使用不同类型的导出,比如客户端导出(Client Export)或 SAP Gateway 导出。
封面图

SAP UI5 SmartTable 控件本地运行时进行 Excel 导出的单步调试

2022-11-16
阅读 4 分钟
660
The following error has occurred during export:Unexpected server response:
封面图

关于 WebSocket 和 HTTP 区别的思考以及一个最简单的 WebSocket 的客户端和服务器实现

2022-11-16
阅读 4 分钟
714
笔者之前与一位同事研究了 Cypress 的 visit 方法,其源码实现最终是调用了 WebSocket 向 visit 参数里指定的 website 通行并获取数据,见下图变量 ev.data 的值。
封面图

SAP Commerce Cloud 的 Security 策略概述

2022-11-16
阅读 1 分钟
423
通过将防火墙规则和 SSL 证书应用到端点(API endpoint)并通过配置其他参数,来优化 SAP Commerce Cloud 的安全操作和管理其安全性。
封面图

SAP Commerce Cloud 里的 User 模型和 Restriction 的关系

2022-11-13
阅读 1 分钟
660
SAP Hybris 的 MENU item 可以被分配一个叫做 User Group restriction 的属性。如果一个用户属于一个特殊的用户组,那么菜单项(menu item)应该是可见的。现在的问题是,这个菜单项仍然显示在店面/网站上(虽然不能点击它),不管是匿名用户还是已注册用户。在 Accelerator 里不会发生这个问题。这个问题的原因在于,Spar...
封面图

SAP 电商云 CMSUserGroupRestriction 在 Spartacus 里的 evaluation 问题

2022-11-13
阅读 2 分钟
394
已经设置了 CMSUserGroupRestriction,在 Accelerator 上可以正常工作,但在 Spartacus 上不工作。注意到的是导航节点根据 restriction 已经处于 deactivated 状态,但它并没有消失。
封面图

在 SAP Fiori Launchpad 里给需要执行的 SAPGUI 事物码配置系统别名

2022-11-13
阅读 2 分钟
416
需要 SAP 系统别名作为系统连接的逻辑名称。 根据 SAP Gateway 内容场景和系统环境,设置系统别名并指定它应该指向的位置。前置条件为,已定义从 ABAP 前端服务器到所有后端服务器的远程函数调用 (RFC) Destination.
封面图

想在 Visual Studio Code 里进行 ABAP 开发,需要安装的扩展列表

2022-11-13
阅读 1 分钟
396
想在 Visual Studio Code 里进行 ABAP 开发,需要安装这些 VS Code 扩展:ABAP Remote FileSystemABAP Syntax HighlightingABAP CDS Language SupportABAP Snippets安装完毕后,我们可以将 SAP 系统配置为 Visual Studio Code 连接的远程文件系统。为了连接到 SAP 系统,需要启用 ABAP 开发工具 (ADT) ICF 节点,这与 SA...
封面图

SAP 电商云 Spartacus UI Angular UI 和 Accelerator JSP UI 的混合使用

2022-11-13
阅读 2 分钟
431
Spartacus 在技术和架构( library 发布方式 vs 模板发布方式,headless vs embedded,Angular vs JSP 技术栈)等各方面,都是一种全面的从 Accelerator 的完整范式转变。因此,对于 Commerce Cloud 已经使用 Accelerator 的客户来说,并没有直接的方法可以从基于 Accelerator 的 Storefront 迁移到使用 Spartacus libra...
封面图

SAP 电商云 Spartacus UI UrlMatcherService 的用法介绍

2022-11-13
阅读 3 分钟
426
这个 Service 类 outline 如下图所示:运行时打印:这是 Spartacus 团队实现的 Routing Module:在 init 阶段进行路由配置。configure 放法的作用:使用 Spartacus routing config 增强原生的 Angular Routes 配置。只能被调用一次。router.config 包含了 Spartacus 默认的路由配置和合作伙伴通过 provideConfig 传递的...
封面图

SAP 电商云 Spartacus UI External Route 的模块实现概述

2022-11-13
阅读 3 分钟
534
我们在 SAP Spartacus AppModule 里进行如下的 External Route 配置之后: {代码...} 一旦访问 Spartacus Cart url,从 Chrome 开发者工具 network 里就能观察到,整个应用不停的自刷新。整个实现位于 routing 文件夹下:在 ExternalRoutesService 里加上调试代码:运行时观察到的输出:ExternalRoutesService 里的 addR...
封面图

Angular 14 新的 inject 函数介绍

2022-11-06
阅读 2 分钟
825
Angular 14 提供了一些非常有趣的特性:类型化表单(typed forms)、独立组件(standalone components),以及本文将要介绍的内容,即在所谓的构造器阶段(constructor phase) 使用 inject 函数的能力。
封面图

Angular 14 inject 函数使用过程中的一些注意事项

2022-11-06
阅读 1 分钟
712
inject 函数只能用于构造器阶段,这意味着其只能在构造器函数作用域(constructor function scope)和字段初始化器(field initializers)中使用。
封面图

使用 Angular 14 的 inject 函数优化对 Ngrx 的使用方式

2022-11-06
阅读 1 分钟
611
上面这段代码的缺陷是,Component 作为 UI 的展现层,直接依赖于作为第三方库的 Store API —— 一个合乎逻辑的措施是,将这个逻辑通过 facade 服务的思路,抽取到一个 service 中,以保护 Component 免受库弃用或破坏性更改(breaking changes)的影响。
封面图

通过 SAP UI5 ODataModel API 在 JavaScript 代码里访问 OData 元数据试读版

2022-11-06
阅读 1 分钟
523
我们通过 url http://localhost:8080/webapp/index.html?sap-ui-debug=true 访问这个应用的调试模式,能够在 Chrome 开发者工具 network 面板里,观察到一个通过 SAP UI5 框架自动发送的 OData 元数据请求,url 如下:
封面图

访问 SAP 电商云 Storefront 时遇到的 HTTP 403 错误

2022-11-06
阅读 1 分钟
617
Access DeniedYou don't have permission to access "http://xxxs-us/en_US/USD/" on this server.Reference #18xxx2f