角度2 ng-bootstrap模态

时间:2016-10-22 18:22:34

标签: angular typescript modal-dialog ng-bootstrap

我在应用程序中使用组件而不是模板打开模态然后我需要将对象模型传递给模态组件,问题是typescript给出modalRef.componentInstance错误不存在作为属性,我完全复制样本表单演示页面但是再次给出相同的错误,并且永远不会在模态内容类上填充@input变量,

这是错误 无法设置未定义的属性“模型”

 @Component({
selector: 'company-list',
templateUrl: './app/components/company/company-list.component.html'
})
export class CompanyListComponent implements {
private modalRes: Company;

constructor(private modalService: NgbModal) {
}

open(company: Company) {
    const modalRef = this.modalService.open(CompanyAddComponent);
    modalRef.componentInstance.name = 'some name';  //** this line gives error

    modalRef.result.then((result) => {           
    }, (reason) => {

    });     
}

createCompany(model: Company) {
    this.companyService.createCompany(model);
}
}

在模态中我声明这个varable来获取传入的值 @Input()模型:公司; 但它始终为空

1 个答案:

答案 0 :(得分:1)

对于您不存在componentInstance的第一个问题,我首先要确保您使用的是1.0.0-alpha.9。当我使用1.0.0-alpha.8并升级修复了这个问题时,我收到了同样的错误。

使用最新版本后,您的第二个问题似乎是您没有引用正确的@Input()变量。所以我会改变以下内容。

// Original
...
modalRef.componentInstance.name = 'some name'; 
...

// Updated
...
modalRef.componentInstance.model = new Company();
...

请注意,在更新的部分中,不是引用不存在的名称变量,而是引用您的@Input()变量模型