Как запустить метод JS при каждой навигации в Angular - PullRequest
0 голосов
/ 14 февраля 2019

В проекте Angular, когда я перехожу на другую страницу, на странице возникает проблема.

3-я добавленная библиотека javascript нарушается при навигации.

Так что мне нужно запустить этот код.

declare var MY_LIBRARY: any;// referencing jQuery library

MY_LIBRARY.initAllPlugins();

Мне нужно запускать этот код при каждом переходе.

Как выполнить этот метод, когда страницанавигация?

Есть ли система промежуточного программного обеспечения или что-то в этом роде?

Ответы [ 2 ]

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

Как правило, вы помещаете любой код компонента, который должен выполняться при инициализации компонента, в метод OnInit:

ngOnInit () {// Ваш код инициализации здесь}

В вашем случае япосмотрел бы на библиотеки javascript, которые вы запускаете, и увидел бы, есть ли версии Angular, которые вы можете использовать вместо них, или лучший способ ссылки на библиотеки - возможно, в одноэлементном сервисе, который сохраняется независимо от того, какой компонент загружен.

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

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

Вы можете прослушивать изменения маршрута следующим образом:

export class SomeComponent {
    constructor(private router: Router) {
        router.events.subscribe((event: Event) => {
            if (event instanceof NavigationStart) {
                // do sth.
            }

            if (event instanceof NavigationEnd) {
                // do sth.
            }

            if (event instanceof NavigationError) {
                // do sth.
            }
        });
    }
}

Но имейте в виду, что выполнение кода (особенно инициализация некоторых плагинов) для каждой навигации / изменения маршрута может быть дорогостоящим и влиять на производительностьваше заявление.

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