【问题标题】:Angular 5 avoid HashLocationStrategy for specific routeAngular 5避免针对特定路线的HashLocationStrategy
【发布时间】:2020-03-20 19:40:38
【问题描述】:

在我的 Angular 5 应用程序中,我有多个路线。我在 app.module.ts 文件的提供者中添加了{ provide: LocationStrategy, useClass: HashLocationStrategy }。但我想从特定路由中删除这个HashLocationStrategy

谢谢。

【问题讨论】:

    标签: angular hash-location-strategy


    【解决方案1】:

    长话短说,你不能。文档和您声明路由策略的方式推断出原因:

    一个 LocationStrategy 用于配置位置服务来表示 它在浏览器 URL 的哈希片段中的状态。

    它是提供的(就像一个服务),并且没有办法挂钩注入并在运行时提供多个注入选项(如果路径像......然后注入这个或另一个)。依赖注入是在模块初始化期间设置的,我知道没有办法解决。

    那么我们可以从Location服务的目的推断,它只是一个,是基于策略创建相对url,它采用提供的策略并在应用程序范围内使用它。

    【讨论】:

    • 我们可以在组件的提供者而不是模块的提供者上设置 HashLocationStrategy 吗?像这样:@Component({ providers: [{ provide: LocationStrategy, useClass: HashLocationStrategy }] })
    • 这仅适用于您想使用组件内部的 LocationService 来规范化 URL。它不适用于您的模块路由:(
    猜你喜欢
    • 2017-05-18
    • 1970-01-01
    • 2018-01-12
    • 1970-01-01
    • 2021-04-25
    • 2017-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多