Угловая ссылка маршрутизатора и триггер события щелчка

#angular #click #angular-routerlink

#угловой #нажмите #angular-routerlink

Вопрос:

У меня есть угловой компонент, который для этой цели выглядит следующим образом:

 <div click="onClick()">
<a [routerLink]="url">
</a>
</div>
 

<a> занимает 100% div, поэтому, когда я нажимаю div или привязку, я хочу вызвать событие onClick () плюс navigate.

Проблема в том, что иногда сначала происходит навигация, а событие щелчка теряется. Поскольку я хочу, чтобы при наведении курсора мыши отображалась ссылка url, по которой я тоже перемещаюсь, я думаю, что другого решения, кроме использования routerLink, нет?

В основном, чтобы показать это:

введите описание изображения здесь

А если нет, то как я могу убедиться, что, несмотря на навигацию, я всегда запускаю onClick() ?

Комментарии:

1. я делаю для вас пример stackblitz, один момент, пожалуйста

2. @DolevDublon спасибо

3. эй, пример stackblitz не работает должным образом, потому что stackblitz работает иначе, чем локальная среда программирования, поэтому я упомяну шаги, которые вы должны предпринять, чтобы заставить материал работать на вас!

Ответ №1:

Вы можете внедрить службу маршрутизатора в свой компонентный контроллер, а затем установить навигацию внутри своей onClick функции.

constructor(private readonly router: Router) { }

и затем:

 onClick() {
     this.router.navigate(['url']);
    ...
}
 

Комментарии:

1. но таким образом я потеряю URL-адрес при наведении курсора, который, я думаю, показывает браузер

Ответ №2:

что случилось!

пара слов, прежде чем мы перейдем к фактическому ответу, просто чтобы убедиться, что вы знаете, как работать с модулем маршрутизатора

 const routes: Routes = [
  { path: "", pathMatch: "full", redirectTo: "home" },
  { path: "home", component: HomepageComponent },
  { path: "register", component: RegisterComponent },
  { path: "buyingmainpage", component: BuyingmainpageComponent , canActivate : [AuthGuard] },
  { path: "checkoutmainpage", component: CheckoutmainpageComponent , canActivate : [AuthGuard] },
  { path: "checkoutsuccess", component: CheckoutsuccessComponent , canActivate : [AuthGuard] },
  { path: "**", component: Eror404Component },
];
 
@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})


 

скажите, знакома ли вам эта концепция?

первый шаг — включить путь к нужному URL-адресу в маршруты, как в приведенном выше коде

ответ

способ заставить это работать в angular — использовать Router

сначала вы импортируете его в начале кода

 import { Router } from '@angular/router';
 

затем в функции конструктора вы объявляете ее следующим образом

   constructor(
    private router: Router,
    ) {}
 

затем вы можете запустить нужную функцию onClick и использовать функцию

router.navigateByUrl(«/abc»)

с помощью строки внутри него для перехода к нужному URL-адресу 🙂

 onClick(){
this.router.navigateByUrl("/checkoutmainpage")
}
 

если вам нужен видеозвонок, я могу вам помочь ,

не стесняйтесь обращаться ко мне по whats app или электронной почте, какое приложение будет быстрее

972505884960 / dolev146@gmail.com

Комментарии:

1. Я знаком с этим, но я хочу, чтобы всплывающее окно url, которое добавляет routerlink. При использовании маршрутизатора он не будет отображаться.

2. можете ли вы позвонить мне в какое приложение? мне потребуется всего 2 минуты, чтобы заставить его работать на вас

3. 972-50-588-4960