SAP Spartacus B2B Popover Directive 和 Popover Component 的生命周期管理
解析 SAP Spartacus B2B list 实现,即list.component.html时,因为在Component 模板里遇到了[cxPopover]指令,因此触发依赖注入:
首先创建directive实例:
当点击宿主元素 icon 时,因为@HostListener 注解的原因,一旦宿主元素发生了 click 事件后,我们定义在 directive 实现里的handleOpen方法会自动被调用:
下图标号为1的componentFactoryResolver,来自Popover directive 构造函数的依赖注入;
标号为2的PopoverComponent,来自我们在另一个文件里实现并通过export 导出的Component:
标号为3的PopoverContainer,是this.viewContainer(同样是构造函数依赖注入的结果)调用 createComponent 返回的结果,其结构为:
this.popoverContainer.changeDetectorRef.detectChanges();
手动触发PopoverComponent的Change detection - 变更检测
然后调用handlePopoverEvents,执行事件处理注册逻辑:
看看这种错误消息的一个例子:
combination reference table/field XXX does not exist
引起错误的字段类型为LOSMENGE,字段名为INSLO:
该字段的基本数据类型(Data Type)为 QUAN,长度为13.
根据ABAP帮助文档, QUAN类型需要和某种单位字段结合在一起,用于描述实际业务流程中的数量,比如 一本书,一件啤酒,一捆绳子等等。
按照ABAP帮助文档里的规定,类型为QUAN的字段,必须设置一个类型为 UNIT 的字段作为单位,二者共同描述“数量”这个概念,缺少单位,数量单位的语义就不完整。
- 点赞
- 收藏
- 关注作者
评论(0)