Почему Модал открывает новое открытое всплывающее окно? - PullRequest
0 голосов
/ 27 января 2019

Заметив странное поведение, которое я не могу понять, когда я пытаюсь открыть модальное с помощью ng-bootstrap

 openModal(content,modalActionType) {
        this.modalActionType = modalActionType;
        console.log(this.modalActionType);
        open(content);
        return false;
  }
  open(content) {
        this.modalService.open(content, {ariaLabelledBy: 'modal-basic-title'})
        .result.then((saveOrCancel) => {
        }, (dismissReason) => {});
   }

HTML

<a class="dropdown-item" (click)="openModal(content,'Reset')">Reset Password</a>

Когда я нажимаю на Reset Password новыйвкладка открывается несмотря на то, что я возвращаю false из функции openModal.

Странно, но приведенный ниже код работает, и Модал открывается, как и ожидалось .Почему это происходит?

openModal(content,modalActionType) {
    this.modalActionType = modalActionType;
    console.log(this.modalActionType);
    this.modalService.open(content, {ariaLabelledBy: 'modal-basic-title'})
    .result.then((saveOrCancel) => {
    }, (dismissReason) => {});
    return false;
  }

1 Ответ

0 голосов
/ 31 января 2019

Проблема в вашем openModal методе:

openModal(content,modalActionType) {
    this.modalActionType = modalActionType;
    console.log(this.modalActionType);
    open(content);
    return false;
}

Третья строка метода open(content); должна быть изменена на this.open(content);, чтобы он вызывал метод open, определенный вами вваш компонент TypeScript, а не window.open() - который откроет новое окно или вкладку (в зависимости от браузера).

Пожалуйста, ознакомьтесь с this StackBlitz для демонстрации.Если вы измените строку 18 в modal-basic.ts с this.open(content); на open(content);, она откроет новую вкладку браузера, а не модальную.

...