是否可以在角度路由器初始化之前执行一些逻辑(API 调用)?

问题描述 投票:0回答:1

我在一个多域网站上工作。我想根据域更改默认路由 URL。在没有服务或模块检查它并在 Init 之后重定向的情况下,这可能是有角度的吗?

我想将默认 URL 存储在 API 调用后面的数据库中。 API 调用已用于加载正确的 CSS 和其他方面的特定配置。这意味着我必须先等待 API 调用完成。

例子:

https://example.com --> angular defaultRoute https://example.com/nl/home

https://information.com --> angular defaultRoute https://information.com/nl/welcome

亲切的问候, 亚历克斯

angular api asynchronous router
1个回答
1
投票

您可以在您的模块中使用

APP_INITIALIZER
,并在应用程序启动之前做一些检查,如果这是您正在寻找的。

APP_INITIALIZER
确实支持
async
调用,因此如果您需要执行一些异步操作,应用程序将在加载应用程序之前等待异步操作解决。

@NgModule({
  providers: [
    {
      provide: APP_INITIALIZER,
      useFactory: () => () => {
        if (/* some condition */) {
          window.location.href = 'https://example.com/nl/home'
        } else {
          window.location.href = 'https://information.com/nl/welcome'
        }
      },
      multi: true
    }
  ]
})
export class AppModule { }
© www.soinside.com 2019 - 2024. All rights reserved.