угловая 6-компонентная функция не работает из HostListener из iframe - PullRequest
0 голосов
/ 05 июля 2018

У меня есть приложение angular 6 и другое веб-приложение внутри iframe. когда я получаю сообщение от iframe с функцией postmessage, я получаю функция onMessage, а затем я попадаю в openOffNet - но тогда всплывающее окно не работает. это не работает, когда я активирую всплывающее окно с помощью кнопки. Кто-нибудь есть идеи, почему это не работает?

спасибо

 import {HostListener, Component, OnInit } from '@angular/core';
    import {NgbModal, NgbActiveModal} from '@ng-bootstrap/ng-bootstrap';
    import {NgbdModalContentComponent} from '../ngbd-modal-content/ngbd-modal-content.component';
    import {ModalAddDeviceComponent} from '../popupBoxes/modal-add-device/modal-add-device.component';
    import {ModalAddOffnetComponent} from '../popupBoxes/modal-add-offnet/modal-add-offnet.component';

    @Component({
      selector: 'app-top-bar',
      templateUrl: './top-bar.component.html',
      styleUrls: ['./top-bar.component.css']
    })
    export class TopBarComponent implements OnInit {

      constructor(private modalService: NgbModal) { 
        (<any>window).onMessage= this.onMessage.bind(this);
      }

      ngOnInit() {
      }

       @HostListener('window:message', ['$event'])
      onMessage(e) {
        console.log('HostListener');
        if(e.data.function == 'subnetworkClicked'){

        }
        else{
          console.log("open popUp");
          this.openOffNet();
        }



      }




      openOffNet () : void {
        const modalRef = this.modalService.open(ModalAddOffnetComponent);

      }
    }

1 Ответ

0 голосов
/ 16 августа 2018

Попробуйте «документ: сообщение» вместо «окно: сообщение»

...