创建模型后无法读取未定义的属性“名称”

时间:2018-10-12 04:37:08

标签: angular angular6

我对棱角非常陌生。我定义了一个导出某些字段的模型。在将所有用户对象写入ts文件之前。现在,在我创建模型之后,我得到了错误:

ERROR TypeError: Cannot read property 'name' of undefined

如何解决此错误?

这些是我的代码。

user.model.ts

export class User {
    name: string = '';
    email: string = '';
    password: any = '';
}

register.component.ts

import { User } from '../../models/user.model';
export class RegisterComponent implements OnInit {
    public form: User;
}

register.html

<form #signupForm=ngForm (ngSubmit)="onSubmit()">
    <input type="text" name="name" #name="ngModel" [(ngModel)]="form.name" class="form-control" id="inputname3" placeholder="Enter Name" required>

4 个答案:

答案 0 :(得分:3)

  

register.component.ts

import { User } from '../../models/user.model';
export class RegisterComponent implements OnInit {
   public form: User = {};
}

请尝试此操作。

答案 1 :(得分:1)

您需要创建User的实例,

 public form: User;

constructor(){
  this.form = new User();
}

答案 2 :(得分:0)

我要做的是创建一个interface UserRef进行类型检查

user.ts

export interface UserRef {
    name: string;
    email: string;
    password: any;
}

register.component.ts

import { UserRef } from '../../contracts/user';
import { User } from '../../models/user.model';
export class RegisterComponent implements OnInit {
    public form: FormGroup;
    public user: UserRef;

    ngOnInit() {
       this.user = new User()
       // form setup
       // this.form = ...

    }
}

user.model.ts 应该看起来像

export class User {
    name: string = '';
    email: string = '';
    password: any = '';
    constructor() {}
}

答案 3 :(得分:0)

在使用form对象之前,先对其进行初始化。

工作副本在这里https://stackblitz.com/edit/angular-xn211g