gpt4 book ai didi

UrlMatcher 中的 Angular 6+ 依赖注入(inject)和异步

转载 作者:行者123 更新时间:2023-12-02 18:02:05 24 4
gpt4 key购买 nike

如何为路由的 UrlMatcher 注入(inject)依赖项并执行异步路由匹配?

我需要调用后端 API,以便找到每个 URL 的正确路由(通过解析重写规则并在 WordPress 中运行查询)。

这就是为什么我需要为 UrlMatcher 提供一个单例服务来获取一次数据,然后使用它来确定路由(然后将其注入(inject)到包含获取的数据的组件中)。

我创建了一个 UrlMatcher 工厂:

      {
component: PostComponent,
matcher: wpApiUrlMatcherFactory('post')
}

但我不知道如何向所有匹配器注入(inject)相同的服务以及如何使其工作,因为该服务是异步的并且 UrlMatcher 无法返回 PromiseObservable

最佳答案

1.在main.ts中:

export let appInjector: Injector;


platformBrowserDynamic().bootstrapModule(AppModule)
.then(m => appInjector = m.injector)

2.在您的路由器模块中:

从'../../main'导入{appInjector};

const routes: Routes = [
{
matcher: (segments: UrlSegment[]): UrlMatchResult => {
if (appInjector.get(AccessService).hasAccess('test')) {
return {consumed: [segment]};
}
},
component: TestComponent,
];

关于UrlMatcher 中的 Angular 6+ 依赖注入(inject)和异步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54222745/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com