Javascript 如何从全局函数访问角度分量函数-请与IE11兼容

Javascript 如何从全局函数访问角度分量函数-请与IE11兼容,javascript,angular,typescript,mastercard,Javascript,Angular,Typescript,Mastercard,情况是这样的——我正在一个基于角度的应用程序中使用Mastercard支付网关api。api对成功和错误进行回调,并在脚本标记的数据错误和数据成功属性中传递回调以加载Mastercard api <script src="https://eu-gateway.mastercard.com/checkout/version/49/checkout.js" data-error="errorCallback" data-cancel="cancelCallb

情况是这样的——我正在一个基于角度的应用程序中使用Mastercard支付网关api。api对成功和错误进行回调,并在脚本标记的数据错误和数据成功属性中传递回调以加载Mastercard api

<script src="https://eu-gateway.mastercard.com/checkout/version/49/checkout.js" 
        data-error="errorCallback" 
        data-cancel="cancelCallback">
</script>

我有一个解决方案,它在Firefox和Chrome中运行得很好,但在IE11中绝对失败。我已经取消了所有polyfills导入的注释,但无论我如何尝试,都没有任何效果

以下是我迄今为止所做的工作:

  export class AppComponent implements OnInit {
    constructor(private ngZone: NgZone, private router:Router) {
    var _self = this;

    (<any>window).errorPaymentCallback = function(error){
      console.log(error);
    };

    (<any>window).cancelPaymentCallback = function(){
      console.log('cancel');
    };      
}
导出类AppComponent实现OnInit{
构造器(专用ngZone:ngZone,专用路由器:路由器){
var _self=这个;
(窗口).errorPaymentCallback=函数(错误){
console.log(错误);
};
(窗口).cancelPaymentCallback=函数(){
console.log('cancel');
};      
}

无论我尝试什么,回调都不会被触发,而是api返回一个错误。有什么想法吗?

您可以调度一个事件,然后在
AppComponent

这就是你如何做到这一点:

<script src="https://eu-gateway.mastercard.com/checkout/version/49/checkout.js" 
        data-error="errorCallback" 
        data-cancel="cancelCallback">
</script>

    <script type="text/javascript">
        function errorCallback(error) { document.dispatchEvent(new Event('payment-error', { bubbles: true })); }
        function cancelCallback() { document.dispatchEvent(new Event('payment-error', { bubbles: true })); }
        window.global = window;
      </script>

哇-还没有检查过事件-我会尝试一下,然后再回复你:)-很多角度的左向学习没有真正起作用-即说对象不支持此操作:(明白了-这个答案中的多边形填充整理了它,感谢你为我指出了正确的方向:)Rockstar!
@HostListener('document:payment-error', ['$event'])
  paymentError(event){
    //do your work
  }