2016-12-30 4 views
2

Я успешно импортировал NgbModal в мое приложение Angular 2, в настоящее время у меня есть еще один компонент, отображаемый внутри модального.Ошибка NgbModal при попытке закрыть

Проблема у меня есть, как только он появился, и я щелкаю близко я получаю следующее сообщение об ошибке:

Cannot read property 'close' of undefined 

Теперь я следовал Components as content Я посмотрел на HTML, а также прошел через машинопись , однако я не уверен, что я на самом деле отсутствует здесь.

Это мой тип файла сценария:

import { Component, OnInit, ChangeDetectorRef } from '@angular/core'; 
import { BugService } from '../service/bug.service'; 
import { Bug } from '../model/bug'; 
import { NgbModal, NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; 
import { BugDetailComponent } from '../../bug-detail/bug-detail.component'; 

@Component({ 
    selector: 'bug-list', 
    templateUrl: './bug-list.component.html', 
    styleUrls: ['./bug-list.component.css'] 
}) 

export class BugListComponent implements OnInit { 

    private bugs: Bug[] = []; 

    constructor(private bugService: BugService, private cdRef: ChangeDetectorRef, private modalService: NgbModal) { } 

    ngOnInit() { 
    this.getAddedBugs(); 
    } 

    getAddedBugs() { 
    this.bugService.getAddedBugs().subscribe(bug => { 
     this.bugs.push(bug); 
     this.cdRef.detectChanges(); 
    }, 
     err => { 
      console.error("unable to get added bug - ", err); 
     }); 
    } 

    open() { 
    const modalRef = this.modalService.open(BugDetailComponent); 
    modalRef.componentInstance.name = 'World'; 
    } 
} 

импортировать BugDetailComponent который я тогда ссылки внутри функции open(). Когда я нажимаю кнопку «закрыть» после появления модальности, я вижу сообщение об ошибке.

Мой HTML выглядит следующим образом:

<div class="modal-header" [id]="modalId"> 
<button type="button" class="close" aria-label="Close" (click)="activeModal.dismiss('Cross click')"> 
    <span aria-hidden="true">&times;</span> 
    </button> 
<h4 class="modal-title">Hi there!</h4> 
</div> 
<div class="modal-body"> 
    <p>Hello, {{name}}!</p> 
</div> 
<div class="modal-footer"> 
    <button type="button" class="btn btn-secondary" (click)="activeModal.close('Close click')">Close</button> 
</div> 

Может кто-то пожалуйста, пролить некоторый свет на почему я получаю эту ошибку и, возможно, помочь мне исправить это?

ответ

1

Прошу игнорировать, я исправил это. Пропускал следующий конструктор от bug-detail.component.ts

constructor(public activeModal: NgbActiveModal) {} 
+0

Я получаю сообщение об ошибке: 'Ошибка: Нет поставщика для NgbActiveModal' Любая помощь ??! –

0

Добавить NgbActiveModal в поставщиках [NgbActiveModal] в модуле приложения.

0

Вы можете столкнуться с той же ошибкой в ​​случае импорта «NgbModal» не хватает в строке

import { NgbModal, NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';