Angular 如何在不重新加载路由器的情况下转到其他页面。在7中导航?
我在组件模板中有一个按钮。单击时,将使用以下代码调用组件方法:Angular 如何在不重新加载路由器的情况下转到其他页面。在7中导航?,angular,Angular,我在组件模板中有一个按钮。单击时,将使用以下代码调用组件方法: saveAndGoToDetails() { // TODO: Here will be saving this.router.navigate(['/details/1029']); } 它从具有此零件的组件调用: <button mat-flat-button color="primary" (click)="saveAndGoToDetails()">Save and go to detai
saveAndGoToDetails()
{
// TODO: Here will be saving
this.router.navigate(['/details/1029']);
}
它从具有此零件的组件调用:
<button mat-flat-button color="primary" (click)="saveAndGoToDetails()">Save and go to details</button>
保存并转到详细信息
它应该做的是在不重新加载整个应用程序的情况下导航到此路线。尽管如此,当转到URL时,它会重新加载整个页面
如何在Angular 7中正确地从组件导航到其他路径而不重新加载页面?首次导入
import {ActivatedRoute} from '@angular/router';
那么,
在构造函数中添加私有路由:ActivatedRoute作为
constructor(..., private route: ActivatedRoute){}
然后您可以使用下面的函数
this.router.navigate(['details','1029'],{relativeTo:route,skipLocationChange:true})代码>解决方案是添加:
return false
在
saveAndGoToDetails()
处理函数。这个问题是由棱角材料的工作方式引起的。如果按钮放在里面。即使它不是“提交”按钮,Angular Material也会将其作为“提交”按钮处理。请提供一个关于堆栈的闪电战。这是不正常的,应该复制,以便我们可以告诉您出了什么问题:寻求调试帮助的问题(“为什么此代码不工作?”)必须包括所需的行为、特定的问题或错误以及在问题本身中复制它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处
此按钮是否在表单中?比如提交按钮之类的?如果你用a href标记了你的操作,那么这种行为是正常的,提交按钮也是正常的,正如@SiddAjmera所建议的。您好,请不要要求关闭这个问题,因为这将使更新问题变得不可能,我需要创建一个新的问题。我已经用如何调用的信息更新了问题。这是一个普通的按钮(不提交)而不是a href,这使得您需要写一个详细的答案。我尝试了一下并得到了信息:在您的构造函数中找不到名称“route”Use(私有路由:ActivatedRoute)默认情况下Html中的所有按钮都是type=“submit”
。这不仅仅是在角度上。您可以将类型更改为“button”来绕过它