- SAP Spartacus的基于outlet的页面扩展
- 使用 jMeter 对 SAP Spartacus 进行并发性能
- 如何在 SAP 电商云 Spartacus UI 里新建一个页面
- SAP 电商云 Spartacus UI 产品明细页面路由路径的
- SAP 电商云 Spartacus UI 产品搜索结果的设计明细
- 使用outlet在SAP Spartacus的页面添加自定义HT
- 让 fork 出来的 Github 仓库从远端仓库拖取最新的修改
- 为什么 SAP Spartacus 不手动导入 UserAcco
- SAP Spartacus 找不到登录入口的问题 - 如何使用
- SAP Spartacus 服务器端渲染找不到 index 视图
需求:在Spartacus product明细页面(Product detail page, 缩写PDP)里增添逻辑:如果一个产品的库存小于300,显示“Limited offer”的提示信息,如下图所示:
下面是具体实现方法:
新建一个Outlet Component:
import { Component, OnInit } from '@angular/core';
import { Product, ProductService } from '@spartacus/core';
import { CurrentProductService } from '@spartacus/storefront';
import { Observable } from 'rxjs';
@Component({
selector: 'app-outlets',
templateUrl: './outlets.component.html',
})
export class OutletsComponent implements OnInit {
hotProduct$: Observable<Product> = this.productService.get('816780');
currentProduct$: Observable<Product> = this.currentProductService.getProduct();
constructor(private productService: ProductService, private currentProductService: CurrentProductService) { }
ngOnInit() {
}
}
页面模板:
<ng-template cxOutletRef="Section1" cxOutletPos="before">
<h1>Hot sale</h1>
<cx-product-list-item
*ngIf="hotProduct$ | async as product"
[product]="product"
></cx-product-list-item>
</ng-template>
<ng-template cxOutletRef="PDP.PRICE" cxOutletPos="before">
<h3
class="text-danger"
*ngIf="(currentProduct$ | async)?.stock.stockLevel < 300"
>
Limited offer!
</h3>
</ng-template>
在NgModule里,将outlet Component加入到exports区域里:
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { OutletsComponent } from './outlets.component';
import { OutletRefModule, ProductListModule } from '@spartacus/storefront';
@NgModule({
declarations: [OutletsComponent],
imports: [
CommonModule,
OutletRefModule,
ProductListModule
],
exports: [OutletsComponent]
})
export class OutletsModule { }















网友评论