В моем проекте в первом компоненте есть поле ввода и кнопка.
<div routerLink = "questions" (click) = "btnClicked(target.value)" class = "button">Click Me</div>
В app.module.ts я настроил маршрутизатор, и он работает таким образом, но проблема в том, что в функции btnClicked() я проверяю если ввод пользователя действителен, и, таким образом, не имеет значения, действителен ли ввод или нет, программа перейдет к компоненту questions, поэтому я хотел бы выполнить эту маршрутизацию в машинописный файл сразу после проверки.
Какие-либо предложения? Спасибо, ребята, за ответ.






используйте navigateByUrl внутри функции щелчка кнопки.
btnClicked(value){
if (// your condition){
this.router.navigateByUrl('questions')
}
}
освободить routerLink от div
<div (click) = "btnClicked(target.value)" class = "button">Click Me</div>
Снимите routerLink с кнопочного элемента. И добавьте Router в конструктор компонента.
component.ts
import { Router } from '@angular/router';
constructor(private router: Router) {}
public btnClicked(event: any): void {
if (this.valid) { // check the validation here
this.router.navigate(['/questions']);
}
}
component.html
<div (click) = "btnClicked(target.value)" class = "button">Click Me</div>
Это не очень хорошая практика. Вы можете перейти к другому маршруту с помощью метода btnclicked.