В моей команде есть люди, не являющиеся англоязычными программистами.Мне нужно разрешить им использовать внешний JavaScript для вызова функции в одном из моих компонентов Angular.Я использую Angular 7.
Я посмотрел этот пост (и другие): https://stackoverflow.com/a/39280942
, но, похоже, ни один не работает ...
Вот мой код
ОБНОВЛЕНИЕ - Неважно ... это работает, мой плохой
angular.component.ts
import { Component, NgZone, OnInit, OnDestroy } from '@angular/core';
import { Router, ActivatedRoute } from '@angular/router';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
})
export class AppComponent implements OnInit {
constructor(
private ngZone: NgZone,
private _router: Router,
private route: ActivatedRoute
) {
}
ngOnInit() {
window.my = window.my || {};
window.my.namespace = window.my.namespace || {};
window.my.namespace.publicFunc = this.publicFunc.bind(this);
}
ngOnDestroy() {
window.my.namespace.publicFunc = null;
}
publicFunc() {
this.ngZone.run(() => this.getTraining());
}
getTraining() {
console.log("getTraining");
}
}
в typings.d.ts
interface Window { my: any; }
во внешнем JavaScript я вызываю
my.namespace.publicFunc();
и получаю ошибку: Uncaught ReferenceError: my не определена