【发布时间】:2020-03-20 19:40:38
【问题描述】:
在我的 Angular 5 应用程序中,我有多个路线。我在 app.module.ts 文件的提供者中添加了{ provide: LocationStrategy, useClass: HashLocationStrategy }。但我想从特定路由中删除这个HashLocationStrategy。
谢谢。
【问题讨论】:
标签: angular hash-location-strategy
在我的 Angular 5 应用程序中,我有多个路线。我在 app.module.ts 文件的提供者中添加了{ provide: LocationStrategy, useClass: HashLocationStrategy }。但我想从特定路由中删除这个HashLocationStrategy。
谢谢。
【问题讨论】:
标签: angular hash-location-strategy
长话短说,你不能。文档和您声明路由策略的方式推断出原因:
一个 LocationStrategy 用于配置位置服务来表示 它在浏览器 URL 的哈希片段中的状态。
它是提供的(就像一个服务),并且没有办法挂钩注入并在运行时提供多个注入选项(如果路径像......然后注入这个或另一个)。依赖注入是在模块初始化期间设置的,我知道没有办法解决。
那么我们可以从Location服务的目的推断,它只是一个,是基于策略创建相对url,它采用提供的策略并在应用程序范围内使用它。
【讨论】:
@Component({ providers: [{ provide: LocationStrategy, useClass: HashLocationStrategy }] })