我的团队中有一些非角度编码人员。我需要允许他们使用外部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");
}
}
intings.d.ts
interface Window { my: any; }
在我调用的外部JavaScript中
my.namespace.publicFunc();
我得到的错误是:未捕获的ReferenceError:未定义