美文网首页SAP
SAP Spartacus的自定义路由

SAP Spartacus的自定义路由

作者: 华山令狐冲 | 来源:发表于2021-02-26 09:25 被阅读0次

我新建了一个自定义Component:

import { Component, OnInit } from '@angular/core';
import { ProductNameNormalizer } from './product-name-normalizer';

@Component({
  selector: 'app-custom-page',
  templateUrl: './custom-page.component.html',
  styleUrls: ['./custom-page.component.scss']
})
export class CustomPageComponent implements OnInit {

  constructor(private productNameNormalizer: ProductNameNormalizer) {
  }

  ngOnInit(): void {
  }

}

HTML页面代码:

<p>custom-page works!</p>

<a href="/cameras/photosmart-e317-digital-camera/300938">Awesome Product</a>

<p></p>
<a [routerLink]="{ cxRoute: 'product', params: {code: '300938',
nameForUrl: 'Jerry' }} | cxUrl">Awesome Product 2</a>

新建一个module,在里面自定义路由逻辑:

const CUSTOM_ROUTES: Routes = [
  { path: 'custom', component: CustomPageComponent, canActivate: [CmsPageGuard] },
  { path: 'contact1', component: CustomPageComponent },
  {
    path: 'faq-alias', component: PageLayoutComponent, canActivate: [CmsPageGuard],
    data: {
      pageLabel: 'faq'
    }
  }
];

语义:

url里输入custom时,打开Component CustomPageComponent,启用PageGuard
url里输入contact1时,打开Component CustomPageComponent,不启用PageGuard
url里输入faq-alias时,打开PageLayoutComponent,使用的CMS page id为faq.

最后将此module导入app module:

测试:

路径custom启用了page guard,能看到not found的提示:

contact1没启用page guard,也看不到整个Spartacus其他section比如header,footer的内容了,就是一个纯粹的html静态页面:

http://localhost:4202/electronics-spa/en/USD/faq-alias

更多Jerry的原创文章,尽在:"汪子熙":


相关文章

网友评论

    本文标题:SAP Spartacus的自定义路由

    本文链接:https://www.haomeiwen.com/subject/gyfpiktx.html