gpt4 book ai didi

javascript - Angular Router按钮不触发提交事件

转载 作者:行者123 更新时间:2023-12-03 00:44:47 25 4
gpt4 key购买 nike

我面临的问题是此代码中的按钮没有触发提交事件,但是如果我删除路由器链接,那么它就会开始触发事件> 像平常一样。我猜测路由是在事件触发之前发生的。

如何更改我的代码,使其运行 onSubmit() 函数,然后开始路由

我有一个简单的 Angular 代码:

HTML

<form (submit)="onSubmit(theForm)" #homeForm='ngForm' ngControl="homeForm">
<button
mat-raised-button
color="accent"
routerLink="/form"
routerLinkActive="active">
Submit
</button>
<mat-card>
<mat-checkbox>Check me!</mat-checkbox>
</mat-card>
</form>

typescript

import { Component, Output, Input, OnInit } from '@angular/core';
import {FormsModule, FormGroup, NgForm, FormBuilder} from '@angular/forms';

@Component({
selector: 'app-form',
templateUrl: './form.component.html',
styleUrls: ['./form.component.css']
})
export class FormComponent implements OnInit {

onSubmit(form: NgForm) {
console.log('You submit to me?');
console.log(form);

}
constructor(private fb: FormBuilder) { }

ngOnInit() {
}
}

最佳答案

您可以在 onSubmit 处理程序中手动路由

进行以下更改

.ts

constructor(private fb: FormBuilder, private router : Router) { }

onSubmit(form: NgForm) {
console.log('You submit to me?');
console.log(form);
this.router.navigate(['/forms']);

}

同时从 .html 中删除您的 routerLink

关于javascript - Angular Router按钮不触发提交事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53294306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com