【问题标题】:angular 2 ng-bootstrap modal角度 2 ng-bootstrap 模态
【发布时间】:2017-03-04 21:07:57
【问题描述】:

我在应用程序中使用组件而不是模板打开模态然后我需要将对象模型传递给模态组件,问题是打字稿给出了 modalRef.componentInstance not exists as property 的错误,我完全复制了示例表单演示页面但再次给出相同的错误,并且永远不会在模态内容类上填充@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() 模型:公司; 但它始终为空

【问题讨论】:

    标签: angular typescript modal-dialog ng-bootstrap


    【解决方案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

    【讨论】:

    • 感谢您升级到 1.0.0-alpha.9 并再次安装节点包解决了问题
    猜你喜欢
    • 2017-11-22
    • 1970-01-01
    • 2019-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多