Can't close ng-bootstrap modal

So, I have NgbModal with a form in it, and I want to achieve its closure upon successful submission.

This is my ModalComponent:

 @Component({ selector: 'create-update-transaction', templateUrl: './CreateOrUpdateTransaction.html', providers: [AccountTransactionsService] }) export class CreateOrUpdateTransactionComponent { closeResult: string; modalRef: NgbModalRef; @Input() transaction: Transaction = new Transaction(); @Output() onSubmit: EventEmitter<void> = new EventEmitter<void>(); constructor(private modalService: NgbModal, private transactionsService: AccountTransactionsService) {} sendTransaction(): void{ let localModalRef = this.modalRef; this.transactionsService.createOrUpdateTransaction(this.transaction, (isSuccessful)=>{ if (isSuccessful) { this.onSubmit.emit(); localModalRef.close(); //<--- The problem is here } }); } open(content) { this.modalRef = this.modalService.open(content).result.then((result) => { this.closeResult = `Closed with: ${result}`; }, (reason) => { this.closeResult = `Dismissed ${this.getDismissReason(reason)}`; }); } } 

I get localModalRef.close is not a function error when I try to call the closure method of a saved NgbModalRef

+4
source share
1 answer

This should work for you:

 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)}`; }); } 

Otherwise, your modalRef variable will reference the ZoneAwarePromise object ZoneAwarePromise

+6
source

Source: https://habr.com/ru/post/1263583/


All Articles