Как отправить сообщение на виртуальную машину StackBlitz из родительского окна, используя Angular? - PullRequest
1 голос
/ 23 марта 2020

Я хотел бы отправлять сообщения каждую секунду с главной страницы во встроенный stackBlitz без перезагрузки главной страницы. Я нашел способ, отправив его, создав файл json, как показано ниже. Я использую Angular.

   sdk.embedGithubProject(
  'stackblitz-frame',
  userName + '//' + repoName,
  { height: 500, width: 1500 }
)
  .then(vm => {

    const source = interval(1000);

    const subscribe = source.subscribe(val => {

      var message = new Message();

      message.timeInfo = this.Currenttime;

      this.vm2 = vm;
      vm.applyFsDiff({
        create: {
          'src/assets/input.json': JSON.stringify({ message})
        },
        destroy: ['randomFile.ts']
      });
    });

  });

В приведенном выше примере я посылаю videoInfo каждую секунду. Проблема в том, что когда он запускается, он не позволяет мне редактировать остальную часть проекта stackblitz. Я заметил, что в StackBlitz есть возможность связываться через postMessage между iframes, но при попытке использовать это частная переменная.

vm.rdc.port.postMessage

, что я считаю, что это работает так: 1009 *

Но это установлено как частное свойство, проблема создания файла для связи заключается в том, что представление приложения постоянно перезагружается . В качестве примера дочернего элемента я встроил stackblitz: https://stackblitz.com/edit/adding-links-app. Режим просмотра этого контейнера виртуальной машины не позволяет мне создавать режим просмотра и редактировать, когда ввод. json обновляется.

Знаете ли вы какой-либо другой способ связи между встроенным StackBlitz и родительской страницей, где он находится?

Спасибо

...