Angular 2+ ActivationEnd обратный вызов события вызывается несколько раз - PullRequest
0 голосов
/ 12 июня 2018

Я вижу, что одна подписка на router.events дает три вызова на изменение маршрута для функции обратного вызова, и каждый сообщает instanceof event как ActivationEnd.

console.log('This code runs only once, at site initialization.');
router.events.subscribe((event: RouterEvent) => {
    if (event instanceof ActivationEnd) {
        console.log('This should only log once per route change, but logs three times.');
    };
});

Я нашел этоthread на Github, который кажется связанным, но мне трудно поверить, что это все еще проблема ...

Я использую Angular 5 (5.2.10).

ОБНОВЛЕНИЕ: Похоже, что это событие запускается один раз для каждого сегмента маршрута ... Проверка документации.

Ответы [ 2 ]

0 голосов
/ 01 февраля 2019

Проверить, инициируется ли оно несколько раз?

, если выполнить это событие дважды или несколько раз,

router.events.subscribe((event: RouterEvent) => {

, тогда оно будет запущено несколько раз.

if (event instanceof ActivationEnd) {
    console.log('This should only log once per route change, but logs three times.');
};

Так что, пожалуйста, сделайте это

    if (!alreadyexist){

    router.events.subscribe((event: RouterEvent) => {

      if (event instanceof ActivationEnd) {

        console.log('This should only log once per route change, but logs three times.');

      };
  });

}
0 голосов
/ 12 июня 2018

Похоже, что я должен использовать NavigationEnd вместо ActivationEnd для достижения желаемого результата.Я должен был знать это.Мне кажется, мои глаза не заметили разницу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...