Отменить фоновый процесс при переходе от одного компонента к другому? - PullRequest
0 голосов
/ 01 ноября 2018

Я использую этот libray:

https://github.com/VadimDez/ng2-pdf-viewer

Я создал репозиторий с примером моей проблемы.

https://github.com/YeisonVelez11/pdf

Я создаю PDF, и это хорошо работает. но если PDF не завершил загрузку, и я перехожу к другому компоненту, я получаю сообщение об ошибке.

В основном, когда я возвращаюсь к предварительному просмотру, у меня возникает проблема, поскольку загружаемый PDF-файл не может быть отменен. Я не знаю, что я могу сделать, чтобы выйти из режима просмотра документа в любое время.

enter image description here

  <pdf-viewer [src]="archivo_adjunto"
              *ngIf="archivo_adjunto"
              [render-text]="false"
              [original-size]="true"
              [page]="1"
              [autoresize]="true"
              [show-all]="true"
              style="display: block;"
              (page-rendered)="pageRendered($event)"
  ></pdf-viewer>

ionViewDidLoad() {
this.archivo_adjunto="./assets/documents/Resumen Ejecutivo Autoevaluacion.pdf"

}

Это сделано в Ionic, но функциональность в Angular.

Ответы [ 2 ]

0 голосов
/ 05 августа 2019

Просто внедрите OnDestroy и определите метод с именем ngOnDestroy в своем компоненте. Обработайте очистку / отмену текущей работы там. Этот метод будет вызываться автоматически при удалении любого компонента из DOM.

export class MyComponent implements OnDestroy() {
    //...

    ngOnDestroy() {
       // do the work here
    }

    //...
}
0 голосов
/ 15 января 2019

Просмотр ng2-pdf-viewer / src / app / pdf-viewer / pdf-viewer.component.ts ,

@Input() src отмечен в loadPDF():

private loadPDF() {
    if (!this.src) {
      return;
    }
[. . .]
}

И этот метод вызывается при ngOnChanges событии.

  ngOnChanges(changes: SimpleChanges) {
    if (isSSR()) {
      return;
    }

    if ('src' in changes) {
      this.loadPDF();
    } else if [. . .]
  }

Я считаю, что вам просто нужно изменить значение для src, которое в настоящее время находится в archivo_adjunto, на undefined или null в одном из событий жизненного цикла ionic при выходе из страницы. Возможно на ionViewWillLeave, ionViewWillUnload или на ngOnDestroy. Изменение значения src должно вызвать ngOnChanges в PdfViewerComponent, который затем вызывает loadPDF().

Дайте мне знать, что сработало для вас.

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