ng-bootstrap: модальные глобальные опции

Мы используем ng-bootstrap 1.0.

Мне нужно отключить клавишу escape, которая закрывает модальный.

Я понимаю, что это можно сделать с помощью:

`modalOption.keyboard = false;`

Как я могу применить этот параметр ко всем модалам в моем приложении?

1 ответ

Решение

Вы можете обернуть NgbModal.open в методе обслуживания, и вызовите этот метод, чтобы открыть модалы во всем приложении. В методе keyboard: false добавляется к другим опциям, указанным в качестве необязательного аргумента. Смотрите этот стек для демонстрации.

В обслуживании:

constructor(private modalService: NgbModal) {}

public openModal(content, options = {}) {
  return this.modalService.open(content, { ...options, keyboard: false });
}

В компоненте:

openMyCenteredModal(content) {
  this.myService.openModal(content, { centered: true });
}

В файле модуля, содержащем ваше модальное окно, есть дополнительная опция:

@NgModule({
    declarations: [
      MyModalComponent,
    ],
    imports: [
      CommonModule,
    ],
    entryComponents: [
      MyModalComponent,
    ]
  })
  export class AddAgentModalModule { 
    constructor(
        configModal: NgbModalConfig,
      ) {
        configModal.backdrop = 'static';
        configModal.keyboard = false;
      }    
  }


это повлияет на все время открытия модального окна.

Другие вопросы по тегам