如何为路由注入依赖项UrlMatcher
并执行异步路由匹配?
我需要调用后端 API,以便找到每个 URL 的正确路由(通过解析重写规则并在 WordPress 中运行查询)。
这就是为什么我需要一个单例服务UrlMatcher
获取一次数据,然后用它来确定路由(然后将其注入到包含获取的数据的组件中)。
我创建了一个 UrlMatcher 工厂:
{
component: PostComponent,
matcher: wpApiUrlMatcherFactory('post')
}
但我不知道如何向所有匹配器注入相同的服务以及如何使其工作,因为该服务是异步的并且UrlMatcher
无法返回Promise
or an Observable
.
1.In 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,
];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)