Angular 5:无法读取属性' USERID'未定义的

时间:2018-05-30 02:34:44

标签: angular angular-forms

大家好,

请帮我找到我的错误,我创建了一个注册模型的表单注册表。 我的英语很差,所以我为我的问题展示了图像。谢谢大家!!!

我的模特: enter image description here 零件: enter image description here HTML enter image description here 和bug: enter image description here

5 个答案:

答案 0 :(得分:3)

在设置[(ngModel)]之前,至少需要一个空的RegisterUser对象。否则,modelreg将是未定义的。

modelreg : RegisterUser = New RegisterUser();

,相应的模板应为,

<input [(ngModel)]="RegisteredUser.USERID">

答案 1 :(得分:0)

你有很多问题。首先,NgModel正在生成组件加载的那一刻,USERID的值没有定义,所以你需要将USERID的值赋给空字符串。 其次,ngModel应该是modelreg.USERID而不是RegisteredUser.USERID

答案 2 :(得分:0)

尝试使用以下语法创建一个空对象:

modelreg = {} as RegisterUser; 

对应的模板应该是:

<input [(ngModel)]="modelreg.USERID">

答案 3 :(得分:0)

试试

RegisteredUser?.USERID

在 前加上问号。所以当 RegisteredUser 为空时它不会继续。仅适用于 html 文件

[(ngModel)]="modelreg && modelreg.USERID ? modelreg.USERID : ''"

这应该适用于从 html 访问的 modelreg 的所有属性

或者另一种好方法是在类中设置默认值

export class RegsteredUser{
USERID : strng = "";
FIRST_NAME: strng = "";
.....
}

改为在组件中

registeredUser : Registeredser

试试

registeredUser = new Registeredser()

答案 4 :(得分:-1)

您正尝试从运行时不存在的TYPE属性中读取USERID。因此无法从未定义的错误中读取。

请在input

中尝试此操作

[(ngModel)]="modelReg.USERID"