13

I am following the example given here https://valor-software.com/ng2-bootstrap/#/modals

But when i put the template in my html

<div class="modal fade" bsModal #staticModal="bs-modal" [config]="{backdrop: 'static'}"
     tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" aria-hidden="true"> 
.........
.......

</div>

i also have below entry in my app.module.ts

import { ModalModule } from 'ng2-bootstrap';

@NgModule({
  imports: [ModalModule.forRoot(),...]
})

and below message shows up, i am not sure what i am missing

EXCEPTION: Uncaught (in promise): Error: Template parse errors:
There is no directive with "exportAs" set to "bs-modal" ("
</p-dialog>

<div class="modal fade" bsModal [ERROR ->]#staticModal="bs-modal" [config]="{backdrop: 'static'}"
     tabindex="-1" role="dialog" aria-labell"): PreCheckComponent@80:32
Can't bind to 'config' since it isn't a known property of 'div'. ("
</p-dialog>

according to guide i dont have to import anything to my component

josh_boaz
  • 1,963
  • 7
  • 32
  • 69

4 Answers4

11

You need to import ngx-bootstrap modal module on your module like below:

import { ModalModule } from "ngx-bootstrap";
@NgModule({
  imports: [
    ModalModule.forRoot()
    ]
})
Abdus Salam Azad
  • 5,087
  • 46
  • 35
8

You must be missing the below line in your component

@ViewChild('staticModal') public staticModal:ModalDirective;

For more information on ng2-bootstrap modal you can see this post which contains the demo as well.

Community
  • 1
  • 1
Aravind
  • 40,391
  • 16
  • 91
  • 110
5

Just incase if you are on this thread because you are getting same error even if you have added following line to NgModule

ModalModule.forRoot()

Make sure your import is the correct one.

Correct import

import { ModalModule } from 'ngx-bootstrap/modal';

Wrong import

import { ModalModule } from 'ngx-bootstrap/modal/public_api';
ATHER
  • 3,254
  • 5
  • 40
  • 63
1

You are missing ModalDirective.

@ViewChild('yourModal') public YourModal:ModalDirective;
Abdus Salam Azad
  • 5,087
  • 46
  • 35