我有一个界面用户:
export interface User{
name:string;
email:string:
address:string;
}
我在我的离子页面和类中导入了这个,在构造函数代码之前我有代码:
user:User;
然后,在ngOnInit方法中,我有代码来设置此用户变量的值 .
这很好用 .
现在我试图实现用户对象和表单输入字段的双向绑定 . 在表单输入字段我使用这样的模型: [(ngModel)]="user.name"
现在我收到一个错误,即user.name字段未定义 . 所以我转到我的页面代码并尝试设置 user:User={};
这会产生错误,因为接口需要名称,电子邮件和地址 - 因此无法声明为空 . 如果我删除接口并将代码声明为: user:any={}
那么它可以正常工作 .
我认为未定义的错误是因为用户对象在加载UI时没有值(在ngOnInit方法中设置)?我如何处理这种情况在哪里,我想实现接口的概念?或者实现可空字段是否合适?或者是使用课程的最佳做法?我需要澄清一下这个问题 .
2 回答
您可以使用名称后面的
?
使接口中的属性可选 .使用此代码,您无需在创建用户对象时显式定义所有属性:
使用安全的opertaor
?
(这回答你的问题Or is it good to implement nullable fields?
):