javascript - 检查字段是否已使用 Angular 6 和 Firestore 进行了修改
问题描述
我有一个用于编辑用户详细信息的表单,它应该检查用户是否进行了修改,如果没有,则不要进行更改。目前正在if
检查哪个有效,但我仍然觉得这不是有效的方法,因为我有多个字段必须检查每个字段,这使得代码重复且庞大。
if (f.value.first_name) {
this.user.firstName = f.value.first_name;
}
我曾尝试使用 elvis 运算符,但它不适合我
this.user.firstName ? this.user.firstName :f.value.first_name;
有没有其他有效的方法来做到这一点?
解决方案
我保留原始对象的副本,然后执行以下操作:
get isDirty(): boolean {
return JSON.stringify(this.originalProduct) !== JSON.stringify(this.currentProduct);
}
我stringify
将原始产品(编辑前)和当前产品的副本进行比较。我假设如果它们不相等,则某些事情发生了变化。
这种方法有一些注意事项,特别是如果您的对象结构很复杂,因为可能存在 stringify 不会创建完全相同的字符串的情况。但我没有遇到过这种情况。
推荐阅读
- android - 离子/电容器 - PushNotiifcations - Android - “通知” + “数据” 消息
- typescript - 找不到打字稿编译器
- amazon-web-services - 使用 ssh 克隆 Git
- c# - 当我将它们拖到 Unity 时,动画不起作用
- google-play - Playstore:无法上传,请重试
- python - 为什么当 4 个球到达底部而不是 3 个时我的游戏会暂停?
- sql - 如何从包含 json 查询的表中构建多活动卫星表?
- html - 在 nth-child 的 CSS 选择器中添加异常
- angular - 即使我在 entryComponents 数组中添加了组件,也会出现错误,因为找不到名称“ProductFormComponent”
- c++ - C++ 和 Rust 中“引用”的概念是否不同?