Проблемы с Angular2 для загрузки внешних javascripts

#angular

#angular

Вопрос:

Я новичок в agnular2. Я использовал тему html5 и тему, содержащую несколько файлов javascript. Теперь проблема в том, что я пытаюсь загрузить эти файлы в свое приложение angular2, но оно не загружается должным образом.

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

Пожалуйста, помогите ..!!!

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

1. Если у вас, ребята, нет знаний, то, по крайней мере, пожалуйста, не голосуйте… Это будет полезно и другим.

2. Извините, но я не голосовал.

3. Извините, я не указывал вам.. Это для тех, кто не голосует

Ответ №1:

это потому, что ваш JS-файл загружается до создания компонентов. Попробуйте что-то вроде этого: в вашем js-файле используйте конструктор fn. /**/ app.js

 function callSomething(){
  console.log('something has been called.');
}
  

/* в component.ts*/

 declare var callSomething: any; //declare this at top;
  

теперь вы можете вызвать его внутри любого метода:
new callSomething();

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

1. нет, я использую npm start и запускаю сборку для запуска своего приложения

2. В идеале это должно работать, если вы включили свой js-файл, он уже загружен и должен быть доступен, единственной причиной может быть то, что он не инициализируется в представлениях. Как вы это называете в своих представлениях. Можете ли вы поделиться своим любым представлением, где оно не вызывается?

3. Я только что включил в index.html файла нет в дочерних шаблонах

Ответ №2:

Я думаю, вам нужно инициализировать его в своем представлении.Я сделал что-то вроде этого:

В app.js (которые я включил в свой index.html )

 function scrollToId(id){
  //scroll fn
}
  

На мой взгляд, /Component
импортирует {Component, OnInit } из ‘@angular / core’;

 declare var scrollToId: any;
@Component({})
export class UserDetailsComponent implements OnInit {
  constructor(){}
  ngOnInit() {
    new scrollToId('registration-form');
  }
}
  

и у меня все работает нормально.

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

1. Я должен использовать файлы javascript темы внутри моего приложения angular2. это не какая-то конкретная функция

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

3. в первый раз, когда я захожу на вкладку network внутри консоли, я вижу, что все файлы js регистрируются на вкладке network, но после изменения маршрута они недоступны