前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SAP Spartacus的自定义路由

SAP Spartacus的自定义路由

原创
作者头像
Jerry Wang
修改2020-11-23 11:29:34
6410
修改2020-11-23 11:29:34
举报

我新建了一个自定义Component:

代码语言:txt
复制
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页面代码:

代码语言:txt
复制
<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,在里面自定义路由逻辑:

代码语言:txt
复制
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:

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档