2016-10-22 2 views
1

i open modal в приложении с компонентом вместо шаблона, тогда мне нужно передать объектную модель модальному компоненту, проблема в том, что машинописный текст дает ошибку modalRef.componentInstance не существует как свойство, я точно не копировать образец формы демо-странице, но снова дают ту же ошибку и не получить переменное @input населенных на модальном контенте класса,angular 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); 
} 
} 

и внутри modal i объявляет эту переменную для получения переданного значения @Input() модель: компания; , но он всегда равен нулю

ответ

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() переменной .

+0

поблагодарить вас за обновление до 1.0.0-alpha.9, а установка пакетов узлов снова решила проблему –