问题标签 [angular-router]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
956 浏览

angular - Angular:一些路线使用 PathLocationStrategy 但其他一些路线使用 HashLocationStrategy

我的 app.routes 中有 4 条路线。

在 app.routes 中,我没有为LocationStrategy. 由于对于transaction路线,我想使用 angular2 默认的 PathLocationStrategy,它不允许用户刷新页面。

但是对于evidence路线,我实际上希望用户能够刷新页面。所以我想在这里使用 HashLocationStrategy 。

这是evidence-routing.module

我想在providers: [{ provide: LocationStrategy, useClass: HashLocationStrategy }]里面添加evidence-routing.module以启用 HashLocationStrategy 并且只适用于这条路线。

但是一旦我把它放在那里,整个应用程序将采用 HashLocationStrategy,它也适用于事务路由。

我找不到任何好的解决方案来处理这个问题。

关于这个问题有什么建议吗?

非常感谢!

0 投票
3 回答
282 浏览

angular - Angular 4 路由器。为什么“/path1/(:'path2')" 是一回事吗?

这种 URL “/services/55/(section:'data')” 是连接命名出口和路径的解决方法吗?我不明白为什么它们不能简单地成为“/services/55/data”,当有一个具有如下指定出口属性的路由时:

0 投票
0 回答
293 浏览

angular - Angular 2 / Angular 4:什么相当于 AngularJS resolveRedirectTo?

在 AngularJS 路由设置中,我可以使用“resolveRedirectTo”工具使用注入的服务来计算一个值,然后我可以在重定向 URL 中使用它,例如

我怎样才能在 Angular 2(或 Angular 4 等)中做同样的事情?具体来说,如何调用注入的服务,以便我可以动态创建要重定向到的 URL。

0 投票
0 回答
955 浏览

angular - 为什么 Angular 的激活路由参数是“any”类型的?

只是出于好奇,我尝试将ActivatedRoute's 参数分配给定义为数字的变量:

...它在我的 IDE 和 tslint 中没有任何警告就通过了。所以我深入研究了它,发现它发出声明的Params此处)包含any元素:

问题是为什么?AFAIK 所有参数始终是字符串。有没有办法说 Angular 我们的一些参数应该是numberorarray并且它会解析它?

0 投票
3 回答
4840 浏览

angular - 如何在 angular4 中读取 APP_INITIALIZER 服务中的查询参数?

在 Angular 应用程序引导之前,我ConfigService写了一篇文章来获取配置详细信息。

以下代码编写在app.module.ts此代码中,可以正常工作,并且我能够在应用程序加载之前加载配置。

但是,现在我想将有效负载传递给我必须从查询参数中读取的配置 API。

我尝试了以下但它抛出

如何读取 APP_INITIALIZER 服务中的查询参数?

0 投票
0 回答
621 浏览

angular - 为什么所有新路由参数中都没有 ActivatedRoute.paramMap.subscribe 流

我的 Angular 应用程序有两个主要部分。一个不受路由器控制,另一个由路由器控制。嗯......当我注入ActivatedRoute一个组件时,只有在路由配置中配置的组件才能获得正确的ActivatedRoute信息。存在于router-outlet(侧边栏)之外的组件在订阅ActivatedRoute.paramMap. 但是在传递给 的路由配置中指定的组件RouterModule.forRoot,它在订阅ActivatedRoute.paramMap. 不知道为什么一个正确地得到它,而另一个没有。

有什么帮助吗?

0 投票
3 回答
3569 浏览

angular - Angular Router 以编程方式导航时,旧组件保留在 dom 中

角度版本:4

LoginComponent( 位于public/signinroute 登录后,我想导航到TestComponentpath public/test。我这样做如下:this._router.navigate(['public/test']) 然后,它正确重定向但问题是它没有LoginComponent从 DOM 中删除(尽管ngOnDestroy确实被调用)。

值得一提的是,导航到TestComonent使用 <a routerLink='/public/test'>Test</a>按预期工作。

我究竟做错了什么?

app.routing.ts:

` authentication.routing.ts(这两个组件都属于):

0 投票
5 回答
16499 浏览

angular - 在 Angular 中订阅查询字符串参数

我在Angular 2+中看到了很多订阅查询字符串参数的例子,但我似乎无法让它工作

例如,如何从 angular2 中的 url 获取查询参数?

这是我的代码:

我遇到的问题是this似乎没有将我的组件引用到设置a并且b我想用来驱动*ngIf语句的组件不起作用。

我究竟做错了什么?

0 投票
3 回答
11501 浏览

angular - Angular 4在初始化应用程序之前加载数据

我正在尝试在我的应用程序启动之前加载一些数据。我之所以需要这样做,是因为某些菜单根据某些用户条件(例如,基于用户位置)限制了访问。

因此,如果用户还没有位置或者它的位置没有启用访问某些视图,我需要阻止它。


我尝试使用 Angular Resolve 方法,但没有成功,这就是我所做的:

解决守卫

路由

AuthGuard 只是要检查一个有效的 cookie 会话。

如您所见,我试图阻止访问的路由是company路由。当我第一次加载另一个页面时,我可以阻止访问,例如,如果第一次访问该页面home,然后我导航到该页面company,则验证工作正常,因为用户数据和位置已经可用。

但是,如果第一次访问页面company,它将阻止所有用户导航到那里,因为在LocationGuard尝试验证用户位置时,数据还不可用。

我也尝试用 替换ResolveCanActivate但在数据可用后它永远不会启用视图,它停留在空白页面上。

0 投票
1 回答
9334 浏览

angular - 如何在 html 模板中使用 relativeTo 属性和 routerActive?

我需要在我的应用程序中使用“relativeTo”属性以及“routerLinkActive”指令。具有使用路由的点击监听器功能

会好的。但在那种情况下,我不能使用 routerLinkActive 指令。

如何同时使用两者?