Angular 2 路由器在 URL 中附加问号

标签 angular angular-routing

我在 Angular 4 项目中遇到了一个奇怪的问题。我正在尝试通过代码导航到路径(单击按钮)。我正在使用 router.navigate()完成这项工作的方法如下——

this._router.navigate(["/employeeDetails", selectedEmployee.EmployeeId]);

哪里selectedEmployee.EmployeeId是一个数字。
导航发生了,但我在 URL 中发现了一个非常奇怪的东西。最初 URL 显示如下——http://localhost:4200/?employeeDetails/170然后是 ?符号从 URL 中消失并加载所需的页面。

谁能告诉我为什么?标志出现在 URL 中。理想情况下,它应该为路由加载相应的组件 "/employeeDetails"无需刷新页面。我也尝试了没有 / 的代码如下但没有帮助。
this._router.navigate(["/employeeDetails", selectedEmployee.EmployeeId]);

任何帮助,将不胜感激。

最佳答案

以前的答案都没有给出正确的答案,即使认为其中一些有效!但所有人都打了补丁,而不对我们所拥有的事件的原因采取行动。

解决方案 是设置类型=“按钮”到按钮元素,因为默认情况下,如果未指定,表单会将按钮标识为 type="submit"并触发提交操作。

但是谢谢,因为答案的组合帮助我找到了真正的原因!

关于Angular 2 路由器在 URL 中附加问号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47927645/

相关文章:

javascript - 滚动到 DOM 中元素的顶部 - Angular 8

Angular 2 - primeng 列表中的自定义数据输入

javascript - http-client 在响应到达时调用函数

angular - 在辅助路由中访问子进程: Angular

angular - 检查 Angular 2 中是否存在路线

javascript - 列表未定义 angular2

javascript - 刷新 Angular 应用程序进入默认状态

javascript - 在 AngularJS UI-Router 中创建 View 的最简洁的方法是什么?

javascript - Angular 4+ 中特定路由的 HTTP_INTERCEPTOR

angular - 错误 :NullInjectorError: No provider for Router