Javascript Angular 7中静态内容的通配符路由

Javascript Angular 7中静态内容的通配符路由,javascript,angular,typescript,angular7,angular7-router,Javascript,Angular,Typescript,Angular7,Angular7 Router,我通过学习来学习英语。示例应用程序使用通配符路由来处理所有其他未处理的路由 具体地说,这会将所有其他路由定向到,由处理,然后最终为其自身组件和命名路由未指定的所有可能路由提供服务 为了使通配符路由为不同提交的路由提供不同的静态内容,需要对此示例应用程序中的代码进行哪些具体更改? 例如,如果web用户键入路由/i-am-a-jelly-donut,则需要进行哪些更改,以便请求1.)继续通过Error404PageComponent.ts,但是用户的浏览器是否接收到新的i-am-a-jelly-do

我通过学习来学习英语。示例应用程序使用通配符路由来处理所有其他未处理的路由

具体地说,这会将所有其他路由定向到,由处理,然后最终为其自身组件和命名路由未指定的所有可能路由提供服务

为了使通配符路由为不同提交的路由提供不同的静态内容,需要对此示例应用程序中的代码进行哪些具体更改?

例如,如果web用户键入路由
/i-am-a-jelly-donut
,则需要进行哪些更改,以便请求1.)继续通过
Error404PageComponent.ts
,但是用户的浏览器是否接收到新的
i-am-a-jelly-donut.page.html
而不是
error404 page.component.html
视图

对于每个未指定的路由,
Error404PageComponent.ts
仍将提供
error404 page.component.html
。但是,除了每个非指定路由的逻辑之外,我们还将添加逻辑,以在特定静态路由的
Error404PageComponent
内部提供特殊处理。


这里的目标是能够处理静态路由,而不必为每个路由创建单独的组件。例如,设想一个博客,其中大多数路由都有相同的模板,但每个博客条目中的内容不同。

模板在构建时编译到组件中,您无法在运行时更改组件使用的模板,但可以根据条件隐藏和显示节。将路由器注入组件

constructor(private router: Router) {}
现在,您可以根据路由是否包含“i-am-a-jelly-donut”在组件上设置一个变量

jellyDonut = this.router.url.indexOf('i-am-a-jelly-donut') !== -1;
在你的模板中

<ng-container *ngIf="jellyDonut">
  Jelly Donut
</ngcontainer>

<ng-container *ngIf="!jellyDonut">
  Other stuff
</ngcontainer>

果冻甜甜圈
其他东西

感谢您和+1在询问OP的级别上回答OP。您是否愿意添加评论以指导此特定后续行动。。。我担心这可能无法扩展,例如,如果站点增长到数百个格式相同的“博客条目”,每个条目都需要自己的路径,但没有一个需要自己的组件。我应该研究什么来确定更多路由的解决方法?然后使用路由参数,而不是一个catch-all{path:':blogId',component:BlogComponent}Blog组件可以加载blogId的内容。用例是博客条目,每个条目都需要自己的搜索引擎完全指定的路由。从你简短的两句话中,我看到了BlogComponent中数百个路由选项的相同问题。你能不能详细说明一下,至少让我能理解你的建议是什么样的,这样我就能理解它是如何满足要求的?