angular - 使用实现接口的对象时,在双向表单绑定期间出现未定义错误
问题描述
我有一个界面用户:
export interface User{
name:string;
email:string:
address:string;
}
我在我的离子页面和类中导入了这个,在构造函数代码之前我有代码:
user:User;
然后,在 ngOnInit 方法中,我有设置此用户变量值的代码。
这工作正常。
现在我正在尝试实现用户对象和表单输入字段的双向绑定。在表单输入字段中,我使用这样的模型:[(ngModel)]="user.name"
现在我收到一个错误,即 user.name 字段未定义。所以我去我的页面代码并尝试设置 user:User={};
这会产生错误,因为接口需要名称、电子邮件和地址 - 所以不能声明为空。如果我删除接口并将代码声明为:user:any={}
那么它可以正常工作。
我认为未定义的错误是因为加载 UI 时用户对象没有值(在 ngOnInit 方法中设置)?我该如何处理这种我想实现接口概念的情况?或者实现可为空的字段是否很好?还是使用课程的最佳实践?请我对此有所澄清。
解决方案
您可以通过?
在名称后使用 使接口中的属性成为可选的。
export interface User {
name?: string;
email?: string;
address?: string;
}
使用此代码,您不必在创建用户对象时显式定义所有属性:
user: User = {};
推荐阅读
- vue.js - 分页。如何通过单击数字在页面之间移动
- html - 元素内有 2 个跨度元素的问题
- thrift - Ambari Thrift 服务器在 oom 时自动重启
- c++ - 二叉搜索树不添加到根的右侧
- javascript - 当时区为 +14 时,元素 Datepicker 显示“昨天”未禁用
- python - xml.etree.ElementTree 未在 XML 中找到所有元素
- vue.js - 如何使用 vuex 和 vue-router 在后端和前端之间同步状态?
- python - 带有 importlib 模块的 Python 多进程
- git - 重复文件会增加 git repo 的大小吗?
- node.js - 如何在node js epxress mongodb中使用多个post函数