angular - 如何在 Angular 中有条件地路由和设置路径?
问题描述
我需要有条件地路由到我的 Angular 应用程序中的 2 个页面,
我的 Route.ts 文件
const routes: Routes = [
{ path: '', redirectTo: 'exampleInfo', pathMatch: 'full' },
{ path: 'invalid', component:InvalidComponent},
在应用程序的某处,我将路由器设置为根据某些条件导航到“无效”。现在,当我点击我的 URL 时,它会在几分之一秒内打开 exampleInfo 页面,然后重定向到无效组件。
如何直接导航到无效组件而不有条件地点击默认组件?
提前致谢 。
解决方案
还可以切换路由数组中的组件。这对你有帮助吗?
const routes: Routes = [
{ path: '', redirectTo: 'exampleInfo', pathMatch: 'full' },
{ path: 'invalid', component:InvalidComponent},
{ path: 'exampleInfo', component: (() => {
return SomeService.staticMethod() ? ExampleInfoComponent : InvalidComponent;
})() }
...
]
编辑:但是,正如您所看到的,对于此解决方案,您需要能够提供静态方法,例如在服务中,但组件也应该工作,可以返回真/假。
推荐阅读
- python - 如何在django中自定义一个onetomany关系的序列化器数据
- node.js - ES6/TypeScript 动态导入 - 由于静态导入(Nodejs CLI)而导致启动时间缓慢
- python - 如何生成满足某些条件的三个随机整数?
- reactjs - react-hook-form 的 DefaultValues 未将值设置为 React JS 中的输入字段
- firebase - React Native:使用哪个 firebase 存储 npm 包?
- javascript - Suitescript2.0 中的 Netsuite record.save 返回 200OK 但未创建记录(但同样适用于 SuiteScript1.0)
- apache-kafka - 为什么消费者获取消息时 Kafka 主题队列不为空?
- python - scapy.arping() 或 netdiscover 未在 kali linux 2020.1 中检测到任何连接到 wifi 的客户端
- java - 如何从 Main Activity 更改另一个 xml 文件中 TextView 的重力?
- flutter - 颤振显示分割很长的文本并通过分割显示?