按角度5按需执行解析器

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

我正在研究一个角度应用程序,我最近从角度4.2转换为角度5(虽然我还没有使用角度5的任何特征)。

我需要根据需要在特定路由上执行解析器(当满足某个条件时从代码执行)。例如

if ( a === b) {
     //execute resolver
  }

我不确定,这样做的正确方法是什么,因为解析器就像任何其他打字稿类一样是一个类。

angular typescript
2个回答
1
投票

我会试一试。只是一个概括,因为你还没有发布任何实际的代码。我用了一个简单的三元组来完成今年早些时候完成的任务

app.module.ts提供程序摘录解析器

  {
        provide: 'conditionResolver', useValue: (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => {
            //Something like this
            window.open((route.data as any).otherUrl);
        }
    }

app.router.ts路线摘录实施

    path: 'SomeComponentURL', component: SomeComponent, resolve: {
        url: 'conditionResolver'
    },
    data: {
        condition: (someCondition != '#/SomeComponent')
            ? 'doSomething()' : orDoSomethingElse()
    }

0
投票

我实际上是通过更新我的路由配置并在解析器的resolve方法本身中添加一个条件来实现的。

© www.soinside.com 2019 - 2024. All rights reserved.