angular - UrlMatcher 中的 Angular 6 依赖注入
问题描述
如何为路由注入依赖项UrlMatcher
?
我需要调用后端 API 以找出每个 URL 的正确路由(通过解析重写规则并在 WordPress 中运行查询)。
这就是为什么我需要一个 Singleton 服务UrlMatcher
来获取数据一次,然后使用它来确定路由(然后将其注入到带有获取数据的组件中)。
我创建了一个 UrlMatcher 工厂:
{
component: PostComponent,
matcher: wpApiUrlMatcherFactory('post')
}
但我不知道如何在所有这些服务中使用相同的服务,以及如何在不使用不良实践代码的情况下创建它。
解决方案
1.在main.ts
:
export let appInjector: Injector;
platformBrowserDynamic().bootstrapModule(AppModule)
.then(m => appInjector = m.injector)
2. 在您的路由器模块中:
import {appInjector} from '../../main';
const routes: Routes = [
{
matcher: (segments: UrlSegment[]): UrlMatchResult => {
if (appInjector.get(AccessService).hasAccess('test')) {
return {consumed: [segment]};
}
},
component: TestComponent,
];
推荐阅读
- java - Java Spring API - continous status
- amazon-web-services - Amazon S3 - 前缀可以包含文件名的开头吗?
- android - 如何用字符串制作 IntTween 动画?
- javascript - Vue JS 仪表板模板未在浏览器中正确加载
- css - Material Design vs Bootstrap React、Angular、Vue 实现
- github-actions - GitActions 作业名称基于矩阵索引而不是矩阵值
- f# - 具有 3 个参数的 F# 自定义运算符
- python - 自动调整列宽以适应熊猫生成的 Excel 文件中的内容
- node.js - 从 Angular 项目创建一个 docker 容器
- powerbi - Power BI 计算具有多个 ALL 条件的度量以绕过切片器