我目前有一个 Angular 2 应用程序,用户可以在其中提交表单来创建新项目。当点击提交按钮时,它会调用一个函数将数据发送到服务器,并在服务器确认数据已成功保存后导航到新页面。
我的问题来了,因为表单提交将表单参数附加到 URL。因此,例如,如果我有一个名为 title
的输入并且提交将我带到路由 mytitle
这是 title
字段的输入,Angular (或注入(inject) GET 参数的任何东西)将尝试导航到 mysite.com/mytitle?title=mytitle
而不仅仅是 mysite.com/mytitle
。即使将 [ngModelOptions]="{standalone: true}"
添加到我的所有输入中,仍然会留下一个问号,后面没有任何参数。
这是一个问题,因为它会导致 Angular 重新加载应用程序,因为给定的路由与我的路由定义中的任何路由都不匹配。有没有办法完全禁用注入(inject) URL 的 GET 参数? POST 也不起作用,因为我无处可发布,而且我的下一个 URL 使用表单本身的数据。
最佳答案
我找到了问题的答案,“提交”按钮默认为“提交”类型,因此将其更改为“按钮”类型删除了 GET 参数注入(inject)行为。
关于forms - 停止将 "?"添加到 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38707876/