Как вызвать модальное всплывающее окно bootstrap после загрузки страницы в Angular 7 - PullRequest
0 голосов
/ 28 февраля 2020

Я пытаюсь реализовать функциональность, при которой модальный режим загружается примерно через 15 секунд, когда пользователь заходит на целевую страницу, и остается на целевой странице более 15 секунд. Но ничего не загружается после загрузки представления

HTML:

<button [hidden]="true" data-toggle="modal" data-target="#myModal"></button>
  <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-dialog modal-dialog-scrollable" role="document">
      <div class="modal-content">
        <div class="modal-header">
          <h5 class="modal-title" id="myModalLabel">Modal title</h5>
          <button type="button" class="close" data-dismiss="modal" aria-label="Close">
            <span aria-hidden="true">&times;</span>
          </button>
        </div>
        <div class="modal-body">
          ...
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
          <button type="button" class="btn btn-primary">Save changes</button>
        </div>
      </div>
    </div>
  </div>

файл component.ts

import { Component, OnInit, AfterViewInit, ElementRef, ViewChild } from '@angular/core';

@Component({
  selector: 'app-home',
  templateUrl: './home.component.html',
  styleUrls: ['./home.component.scss']
})
export class HomeComponent implements OnInit, AfterViewInit {
  @ViewChild('myModal') myModal:ElementRef;
  constructor() { }
  ngOnInit() { }
  ngAfterViewInit () {
    setTimeout(() =>{
      this.myModal.nativeElement.click();;
    }, 15000)
  }
}

1 Ответ

0 голосов
/ 28 февраля 2020

Ваш код работает отлично, вы просто забыли добавить в свою кнопку ссылочную переменную #myModal.

Пример:

<button #myModal [hidden]="true" data-toggle="modal" data-target="#myModal"></button>

StackBlitz Пример:

https://stackblitz.com/edit/angular-open-modal-afterviewinit-5s

...