【发布时间】:2018-02-03 12:11:24
【问题描述】:
我将 IE9 和 PathLocationStrategy 与 Angular4 一起使用,但它似乎不起作用。它只是附加“#”无限时间。我尝试添加 history.js polyfill,但似乎没有任何效果。
谁能帮助我如何在 Angular 4 和 IE9 中使用 PathLocationStrategy?
更新: 我终于想通了,我们不能在 IE9 上使用 PathLocationStrategy。现在我试图弄清楚如何在浏览器的其余部分使用 PathLocationStrategy,并且只有在 IE9 存在时,才切换到 HashLocationStrategy。 我试图在我的模块中包含以下代码行:
RouterModule.forRoot(COMMON_ROUTES, { useHash: !Boolean(history.pushState) }),
我证实,!Boolean(history.pushState) 在 IE9 中返回 true,在其他浏览器中返回 false。但它不起作用。即使在 IE9 中,Angular 也默认为 PathLocationStrategy。有人可以帮忙吗?
【问题讨论】:
-
为什么不将它添加到 ngmodule 的提供者数组中并尝试
{provide: LocationStrategy, useClass: HashLocationStrategy}, -
@RahulSingh - 我想要的是......仅对 IE9 使用 HashLocationStrategy,对于其他浏览器,使用 PathLocationStrategy。以上建议,不足以满足此要求。