Как зарегистрировать обычную функцию JS для @Output в угловых - PullRequest
0 голосов
/ 03 мая 2018

У меня есть функция в теге script в index.html hideAppLoader(), и в index.html есть угловой компонент приложения. Я хочу вызвать эту функцию, когда приложение загрузится. Я пробовал с @Output, но это не работает. Вот код

index.html

<head>
  <script>
     function hideAppLoader() { debugger;}
  </script>
</head>
<body>
  <my-app (onAppLoad)="hideAppLoader($event)"></my-app>
</body>

и в файле ts

@Output() onAppLoad = new EventEmitter();

ngOnInit() {
  this.onAppLoad.emit();
}

но функция не вызывается, даже если на консоли нет ошибок. Я даже пробовал (onAppLoad)="this.hideAppLoader($event)" и (onAppLoad)="window.hideAppLoader($event)"

В чем заключается решение или даже можно вызвать функцию простого js из углового компонента, когда она загружена?

1 Ответ

0 голосов
/ 03 мая 2018

Поскольку функция скрипта является глобальной, вам не нужно использовать и EventEmitter. просто измените ваш ngOnInit на:

ngOnInit() {
  window.hideAppLoader();
}

Судя по названию hideAppLoader, вы можете определить загрузчик внутри тега my-app, а Angular удалит его после загрузки AppComponent.

<my-app>
  <img src="assets/loader" />
</my-app>
...