3

我用组件而不是模板在应用程序中打开模态然后我需要将对象模型传递给模态组件,问题是打字稿给出了 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);
}
}

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

4

1 回答 1

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();
...

请注意,在更新的部分中,它不是引用不存在的name@Input()变量,而是引用您的变量model

于 2016-10-25T12:09:47.790 回答