【发布时间】:2016-04-20 17:08:17
【问题描述】:
我已将 Angular2 设置为在引导调用中使用老式的 HashLocationStrategy:
bootstrap(AppComponent,[
ROUTER_PROVIDERS,
API_PROVIDERS, Storage,
provide(LocationStrategy, { useClass : HashLocationStrategy })
]);
我设置了以下路线:
new Route({ path: '/', name: 'Home', component: HomeComponent }),
new Route({ path: '/search/:term/:cat/:page/:sort/:size/:more', name: 'Search6', component: HomeComponent }),
new Route({ path: '/search/:term/:cat/:page/:sort/:size', name: 'Search5', component: HomeComponent }),
new Route({ path: '/search/:term/:cat/:page/:sort', name: 'Search4', component: HomeComponent }),
new Route({ path: '/search/:term/:cat/:page', name: 'Search3', component: HomeComponent }),
new Route({ path: '/search/:term/:cat', name: 'Search2', component: HomeComponent }),
new Route({ path: '/search/:term', name: 'Search1', component: HomeComponent }),
new Route({ path: '/details/:accountNumber', name: 'Details', component: DetailsComponent })
我知道如果我改用查询字符串参数,我的路由可能会更清晰,但我稍后会努力清理它。
我构造了我的参数,然后尝试使用这一行进行导航:
this.router.navigate(['Search' + paramCount, params]);
paramCount 和 params 与上述路径之一创建匹配。这在 Chrome、IE10、IE11、Edge 和除 IE9 之外的所有其他浏览器中都非常有效,在这些浏览器中我没有收到任何错误、没有任何类型的反馈并且页面无法路由。当我在页面上的搜索框中按 Enter 键时,它会正确构建 paramCount 和 params 并点击上面的导航行,但实际上什么也没发生。
我正在 Win7 上的实际 IE 9 浏览器中进行测试(有无兼容模式似乎没有区别)。我在当前最新的 Angular2.0.0-beta15 上,并且有我能找到的所有推荐的 shim/polyfill。我也回到了 beta 11,但都没有工作。
如果我得到零反馈,我该如何调试呢?
这是一个绝对最小的 plnkr:http://plnkr.co/edit/VR7SQaokPZLdfAtfyagm?p=preview
【问题讨论】:
-
刷新能解决问题吗?如果有,可能与github.com/angular/angular/issues/6867有关
标签: internet-explorer-9 angular2-routing