2016-10-22 9 views
1

私はモーダルコンポーネントをテンプレートの代わりにコンポーネントで渡す必要があります。問題は、typescriptがmodalRef.componentInstanceのエラーにプロパティとして存在しないということですサンプルフォームのデモページをコピーするが、再び同じエラーを与え、決してモーダルコンテンツクラスに取り込ま@input変数を取得し、angle 2 ng-bootstrap modal

これはエラー ある未定義

@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()モデル:会社; しかし、常にnullです

答えて

1

最初の問題については、componentInstanceが存在しない場合は、まず1.0.0-alpha.9で作業していることを確認してください。私が1.0.0-alpha.8で作業していたときにこの同じエラーが発生し、その問題が修正されました。

最新のバージョンを使用している場合、2番目の問題は、正しい@Input()変数を参照していないことが原因と思われます。だから私は以下を変更するだろう。

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

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

代わりに、それはあなたの@Input()変数モデルを参照している存在しない名前変数を参照の更新セクションに注意してください。

+0

1.0.0-alpha.9にアップグレードして、ノードパッケージを再度インストールしても問題は解決しました –