Не загружать внешние js при маршрутизации после обновления страницы, которая загружается в Angular 6 - PullRequest
0 голосов
/ 08 ноября 2019

Перед обновлением страницы
После обновления страницы

Я столкнулся с этой проблемой с последних 3 дней и перепробовал много способов, но ни один изони сработали для меня.

Проблема в том, что я загружаю внешние js из angular.json. Это общий js для всех плагинов, которые я использую, таких как боковая панель, диаграмма панели инструментов, переключение меню и т. Д., Который работает правильно при первой загрузке страницы, но когда я перенаправляю страницу через компонент к компоненту или модуль к компоненту, то jsне работает до тех пор, пока я не обновлю страницу.

Если я открою скрипты в инструменте разработчика вкладки сети в chrome, я смогу увидеть мой js, но он все равно не загружается, как только я обновлю страницу, он работаетгладко как я и хотел. Пожалуйста, объясните мне, как я могу решить эту проблему. Извините за язык, надеюсь, вы получили мой запрос. Спасибо

ngOnInit() {
 this.loadScript('../assets/js/scripts/pages/dashboard-lite.js');
}
public loadScript(url: string) {
    const body = <HTMLDivElement>document.body;
    const script = document.createElement('script');
    script.innerHTML = '';
    script.src = url;
    script.async = false;
    script.defer = true;
    body.appendChild(script);
  }

Пробовал загружать все js в домашний компонент, используя этот код, но все же это происходит так же, я должен обновить всю страницу. Пробовал использовать js в index.html, но безуспешно.

1 Ответ

0 голосов
/ 08 ноября 2019

Файл загружается во время выполнения, поэтому URL должен быть относительно базового URL приложения, а не относительно структуры проекта. Это означает, что URL должен быть assets/js/scripts/pages/dashboard-lite.js (т. Е. Удалить начальный ...).

...