Angular 2使用ngValue传递对象返回无法读取属性。。。未定义的
当我在模板中使用此选项时:Angular 2使用ngValue传递对象返回无法读取属性。。。未定义的,angular,angular2-template,angular2-forms,Angular,Angular2 Template,Angular2 Forms,当我在模板中使用此选项时: <select [(ngModel)]="selectedCompany" class="form-control"> <option *ngFor="let company of companies" [ngValue]="company">{{company.Name}}</option> </select> {{selectedCompany}} 我得到以下错误: 异常:未捕获(承诺中):错误:./Hom
<select [(ngModel)]="selectedCompany" class="form-control">
<option *ngFor="let company of companies" [ngValue]="company">{{company.Name}}</option>
</select>
{{selectedCompany}}
我得到以下错误:
异常:未捕获(承诺中):错误:./HomeComponent类HomeComponent-内联模板中的错误:60:10原因:无法读取未定义的属性“Name”
我正试图弄明白为什么我会犯这样的错误。我认为该属性存在是因为
{{{company.Name}}
起作用。这是因为在模板呈现时未定义selectedCompany
。您有两种解决方案:
?
)来“保护”您的模板,直到所选公司
填充了以下数据:
{{selectedCompany?.Name}}
selectedCompany = {};
这两种方法都可以解决问题。就是这样,解决了。谢谢!:)@拉文伦不客气!:)我知道你是新来的,所以请考虑接受和支持我的回答,如果它对你有帮助的话。(我的答案左侧的勾号和向上箭头按钮)在第二种情况下,名称为undefined@RomanC
Name
未定义,但selectedCompany
未定义。如果仔细阅读错误,您会发现这就是本例中的问题所在。
selectedCompany = {};