NgModal не отображается в угловом проекте - PullRequest
0 голосов
/ 04 июля 2019

Я пытаюсь отобразить модальное нажатие кнопки. Модал находится в выделенном компоненте.

Модал находится внутри компонента с именем NgbdModalContent, и модал активируется при нажатии кнопки методом, который находится внутри другого компонента.

Это NgbdModalContent:

@Component({
  selector: 'ngbd-modal-content',
  template: `
    <div class="modal-header">
      <h4 class="modal-title">Hi there!</h4>
      <button type="button" class="close" aria-label="Close" 
 (click)="activeModal.dismiss('Cross click')">
        <span aria-hidden="true">&times;</span>
      </button>
    </div>
    <div class="modal-body">
      <p>"Some text"</p>
     </div>
     <div class="modal-footer">
       <button type="button" class="btn btn-outline-dark" 
  (click)="activeModal.close('Close click')">Close</button>
      </div>
   `
 })
 export class NgbdModalContent {

   constructor(public activeModal: NgbActiveModal) {}
 }

Это метод внутри другого компонента:

    async onCreateClicked() {
   var  modalService=new NgbModal;
     const modalRef = modalService.open(NgbdModalContent);
    return;
   }

Теперь, это не скомпилируется, потому что новый NgbModal требует некоторых аргументов, и я не знаю, что туда вставить, и я не могу поместить NgbModal в качестве аргумента конструктора этого компонента, потому что у него уже есть другой конструктор.

1 Ответ

0 голосов
/ 04 июля 2019

Вы добавили код, как показано ниже

constructor(public activeModal: NgbActiveModal) {}

И когда вы создаете объект такого типа, как

var  modalService=new NgbModal;  

- тогда он всегда будет запрашивать аргументы.Поэтому, если указанный выше параметр не используется, удалите его.И вместо того, чтобы создавать объект с новым, используйте конструктор.

...