2017-01-30 5 views
4

Я пытаюсь закрыть модальный код, который был представлен мне через функцию open (content), как показано в примере в Documentation ng-boostrap. На веб-сайте он упомянул, что я могу позвонить или закрыть из NgbActiveModal.Angular 2 ng-bootstrap close Modal

Поэтому я включил NgbActiveModal в компонент и попытался вызвать функцию увольнения() или close(). Оба они не работают. Прежде всего, уклонение() не определено (я неправильно импортирую NgbActiveModal?) Когда я вызываю close(), кажется, что вы хотите вызвать некоторую странную функцию внутри lib.dom.d.ts, которая совсем не та, что я хочу. Так что мне кажется, что у меня нет доступа к закрытию и увольнению, предоставляемому ng-bootstrap, даже после того, как я импортировал NgbActiveModal. Обратите внимание, что я могу показать модальный штраф

В этом примере модаль был закрыт через (click) = "c ('Close click')". Я понятия не имею, откуда это взялось.

Итак ... Как я могу назвать близко() или отклонить() (в зависимости от работы), чтобы избавиться от модального

modal dismiss

ответ

7

Ответ можно найти здесь. нг-самозагрузка сайта отсутствует много информации, к сожалению, Cannot close ng-bootstrap Modal

Внутри класса компонента

private modalRef: NgbModalRef; 

    // Modal 
    open(content) { 
    this.modalRef = this.modalService.open(content); 
    this.modalRef.result.then((result) => { 
     this.closeResult = `Closed with: ${result}`; 
    }, (reason) => { 
     this.closeResult = `Dismissed ${this.getDismissReason(reason)}`; 
    }); 
    } 

    onSave() { 
    this.modalRef.close(); 
    } 
+0

Спасибо, что поделились этой ссылкой. Даже после посещения этого вопроса до сих пор неясно, как закрыть() или уволить(), чтобы избавиться от модального. Я был бы признателен, если бы вы могли поделиться тем, как вы его решили. Благодарю. – Devner

+0

Обновлено с помощью решения. – user172902

+0

Это работает для меня! большое спасибо. –

2
  1. В вашем модального компонента необходимо добавить линия:

    @ViewChild('exampleModal') public exampleModal:ModalDirective; 
    
  2. в HTML модальных вам нужно вставить в корне сНа:

    #exampleModal="bs-modal" 
    
  3. В вашем модального компонента:

    onSave(){ 
        this.exampleModal.hide(); 
    } 
    
+0

импорта также ModelDirective в компоненте, как импорт {ModalDirective} от «NGX-бутстрапа»; –