Изменения в подписке не отражаются в IFrame [расширение chrome с помощью Angular] - PullRequest
0 голосов
/ 09 ноября 2019

Я создаю расширение для Chrome, используя Angular 8.0+. Мне нужно проанализировать URL текущей страницы, используя расширение API Chrome, а затем перезагрузить iFrame. По какой-то причине изменения в подписке не отражаются на шаблоне. Исходный URL-адрес в шаблоне не изменяется.

iframe.component.html

 <iframe class="e2e-iframe-untrusted-src" [src]="getTicker | safe" style="height:600px; width:500px" ></iframe> 

iframe.component.ts

import { Component, OnInit, Input } from '@angular/core'; 
import { IFrameService } from './iframe.service';
import { DomSanitizer, SafeUrl } from '@angular/platform-browser';
@Component({
  selector: 'app-iframe',
  templateUrl: './iframe.component.html',
  styleUrls: ['./iframe.component.css']
})
export class IframeComponent implements OnInit {
  url: String ;
  constructor(public iFrameService: IFrameService, private sanitizer: DomSanitizer) { }
  ngOnInit() {
    this.iFrameService.setTicker();
    this.iFrameService.ticker$.subscribe((newUrlWithTicker) => {
       this.url = newUrlWithTicker;
    })
  }
  get getTicker(): String {
    return this.url;

  }
}

iframe.service.ts

import { Injectable } from '@angular/core';
import { BehaviorSubject } from 'rxjs';
import { SafeUrl, DomSanitizer } from '@angular/platform-browser';

@Injectable()
export class IFrameService {

    ticker$: BehaviorSubject<string> = new BehaviorSubject("initialDummyUrl?something=");

    setTicker() {
        chrome.tabs.getSelected(null, (tab) => {
            var url = tab.url;
            var ticker = url.split("/")[4];
            var urlStr="initialDummyUrl?something="+ticker+"&ticker="+ticker+""; 
            this.ticker$.next(urlStr);
        });
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...