当我们跳转到一个SAP Spartacus里实际并不存在的页面时:
首先会将url里的值比如1,作为pageLabelOrID的参数值,去Commerce Cloud后台读取对应的content page,当然是读取不到的,因此返回404错误:
观察这个canActivate方法:
输入参数route:
里面的RouterStateSnapshot结构的url字段,包含了试图跳转的url:
首先利用map操作,把route.url, 也就是UrlSegment结构里的path字段的值提取出来:
这里就会将1作为content page的id,去后台取page数据:
因为后台API返回404错误,pageData为undefined,所以激活NotFoundPage:
not found page的元数据:
最后的not found page渲染如下: