shipping address维护页面的id:/checkout/shipping-address:

后台cms的请求:




layout实现:

<ng-container *ngIf="cards$ | async as cards"><h3 class="cx-checkout-title d-none d-lg-block d-xl-block">{{ 'checkoutAddress.shippingAddress' | cxTranslate }}</h3><ng-container *ngIf="!forceLoader && !(isLoading$ | async); else loading"><ng-container*ngIf="isAccountPayment || (cards?.length && !addressFormOpened);else newAddressForm"><p class="cx-checkout-text">{{ 'checkoutAddress.selectYourShippingAddress' | cxTranslate }}</p><div class="cx-checkout-btns row" *ngIf="!isAccountPayment"><div class="col-sm-12 col-md-12 col-lg-6"><buttonclass="btn btn-block btn-action"(click)="showNewAddressForm()">{{ 'checkoutAddress.addNewAddress' | cxTranslate }}</button></div></div><div class="cx-checkout-body row"><divclass="cx-shipping-address-card col-md-12 col-lg-6"*ngFor="let card of cards; let i = index"><divclass="cx-shipping-address-card-inner"(click)="selectAddress(card.address)"><cx-card[border]="true"[fitToContainer]="true"[content]="card.card"(sendCard)="selectAddress(card.address)"></cx-card></div></div></div><div class="cx-checkout-btns row"><div class="col-md-12 col-lg-6"><button class="cx-btn btn btn-block btn-action" (click)="back()">{{ backBtnText | cxTranslate }}</button></div><div class="col-md-12 col-lg-6"><buttonclass="cx-btn btn btn-block btn-primary"[disabled]="!selectedAddress?.id"(click)="next()">{{ 'common.continue' | cxTranslate }}</button></div></div></ng-container><ng-template #newAddressForm><cx-address-form*ngIf="cards.length; else initialAddressForm"[showTitleCode]="true"(backToAddress)="hideNewAddressForm(false)"(submitAddress)="addAddress($event)"></cx-address-form><ng-template #initialAddressForm><cx-address-form[showTitleCode]="true"[setAsDefaultField]="!isGuestCheckout"[addressData]="selectedAddress"cancelBtnLabel="{{ backBtnText | cxTranslate }}"(backToAddress)="hideNewAddressForm(true)"(submitAddress)="addAddress($event)"></cx-address-form></ng-template></ng-template></ng-container><ng-template #loading><div class="cx-spinner"><cx-spinner></cx-spinner></div></ng-template>
</ng-container>

这个ng-container里的else loading中的loading是一个template的id:


这个cx-spinner是一个reuse的转盘动画控件:

显示的时候,UI被锁住,continue按钮不可见。

Next按钮的实现:在next函数里

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

SAP Spartacus checkout Shipping address的页面实现相关推荐

  1. SAP Spartacus checkout页面的入口逻辑

    checkout url: http://localhost:4200/electronics-spa/en/USD/checkout/shipping-address 首先读取checkout页面的 ...

  2. SAP Spartacus checkout 流程使用 url 粘贴直接跳转到 delivery mode不能打开页面的原因

    http://localhost:4200/electronics-spa/en/USD/checkout/delivery-mode 没有任何错误消息,白屏: 能看到向 checkoutDelive ...

  3. 如何给 SAP Spartacus Storefront 创建新的页面

    page template 不包含 layout 或者 design information. content slot 在页面上的具体位置,以及 layout 和 design 的选择,必须在前端指 ...

  4. SAP Spartacus 的基于outlet 的页面扩展

    outlet 是 SAP Spartacus 提供 partners 一种将 custom UI 插入 Spartacus 标准 DOM 的一种手段. outlets get added for ea ...

  5. SAP Spartacus checkout.reducer.ts调用时间点

    输出: Jerry reducer action type: @ngrx/store/update-reducers 10:38:18.845 checkout.reducer.ts:25 Jerry ...

  6. 使用SAP Spartacus的route给标准页面维护alias入口

    源代码: const CUSTOM_ROUTES: Routes = [{ path: 'custom', component: CustomPageComponent, canActivate: [ ...

  7. SAP Spartacus读取User Address的请求发送和接收源头

    先看请求响应的接收源头: 文件:projects\core\src\user\store\effects\user-addresses.effect.ts 接收应用程序发送过来的UserActions ...

  8. SAP Spartacus 最后渲染出的页面和后台 CMS 页面元数据的一一对应

    最后渲染出来的Spartacus的根节点:LandingPage2Template: 就是CMS page的homepage: 根节点下的cx-storefront: 就是Angular应用app.c ...

  9. SAP Spartacus Org Unit User List页面的设计原理

    从cx-org-unit-user-list selector出发: Component为UnitUserListComponent: 打开其html实现,里面又消费了cx-org-sub-list这 ...

最新文章

  1. JAVA-初步认识-第十一章-object类-equals方法覆盖
  2. 剑指offer:旋转数组的最小数字
  3. 正则表达式练习 Regex Golf
  4. python3.7.2下载-Python 3.7.2和3.6.8版本发布下载,附更新说明
  5. 【转】python-word2vec模块使用详解
  6. SQL Server之视图基础知识
  7. 在vmware中创建共享磁盘
  8. jquery各类资源整理
  9. ISE_FIFO_IP核接口测试(二)
  10. MEMS传感器的下一轮技术变革
  11. Django项目定时任务(django-crontab)
  12. 智能访客机成大厦智能办公的亮点
  13. 关于mysql的时区(下):如何设置mysql的时区
  14. Android灯光系统(电池灯/通知灯)
  15. jmeter监听器---jp@gc - PerfMon Metrics Collector
  16. Android仿微信拍摄、录制视频,以及视频播放(基于JCameraView和GSYVideoPlayer)
  17. 混合索引java代码,Elasticsearch 实现拼音,中文,首字母混合搜索
  18. 图像处理(三)——中国传统工艺画风格的图像转换应用
  19. Airport Simulation (数据结构与算法 – 队列 / Queue 的应用)
  20. Android逆向工具

热门文章

  1. [Winform]一个简单的账户管理工具
  2. 批量部署虚拟机实战解析
  3. Struts1.2+Spring2.5+Hibernate3.2框架搭建(十五)
  4. 【学生信息管理系统】——优化篇(一)
  5. CTS/APIO后文化课游记
  6. Hibernate基础学习(二)—Hibernate相关API介绍
  7. 一款监控网络状态的好工具- Smokeping
  8. 自动更新本地 GIT 仓库
  9. leetcode 229. Majority Element II(多数投票算法)
  10. 【Android】Theme.AppCompat.Light 问题