无法读取未定义的属性<propety name =“”>尽管它已在angular2

时间:2017-12-21 08:38:04

标签: angular angular2-template angular2-forms

我创建了模板驱动的表单,作为学习Angular2的一部分。 当我试图显示表单时,我收到一个错误声明:“无法读取未定义的属性'FirstName'”,尽管我在类的声明中初始化了业务对象(worker)。它包括即使我在构造函数中初始化它。 请参阅我的代码(“精益”版本): HTML(EditWorker.component.html):

<input id="firstNameId" type="text" [(ngModel)]= worker.FirstName ... />

EditWorker.component.ts:

export class EditWorker 
{
    constructor(){}
    worker : Worker = new Worker();

Worker.model.ts:

export class Worker implements IWorker{
...
FirstName:string;
...
constructor(){}

我在这里缺少什么?

3 个答案:

答案 0 :(得分:1)

您需要在构造函数

中实例化
 worker : Worker 
 constructor(){
  this.worker  = new Worker();
}

答案 1 :(得分:0)

我知道初始化解决方案应该有效。应用程序引导的方式可能存在问题 - 我已经改变了它的引导方式(直接到我感兴趣的组件)并且它有效。谢谢大家

答案 2 :(得分:0)

您是否尝试将 worker.FirstName 更改为工作人员?.FirstName

<input id="firstNameId" type="text" [(ngModel)]= worker?.FirstName ... />