【发布时间】:2015-10-13 21:51:50
【问题描述】:
我正在尝试了解使用我的 Firebase 数据创建 $setPristine 等效项的正确工作流程。
我的工作流程如下:
1) 创建 Firebase 对象(通过 Angularfire Generator 'SyncData')
2) 表单数据修改 $firebase 对象。
3) 更新远程模型,我使用myRef.$save()
所有这些都运行良好。现在,我正在尝试在表单上添加一个“重置”按钮,以便本地修改的数据将恢复为远程存储的数据。
到目前为止,我遇到了一些问题。我尝试重新初始化 firebase 引用,例如 myRef = syncData('/my/path'),但现在不仅可以正常工作,而且还会破坏远程数据对象!
重新拉取远程数据以在我的 Angular 模型中使用的正确方法是什么?
【问题讨论】:
-
你能简单地将脏的本地数据存储在一个单独的对象中吗?那么当 reset 被调用时,再次从 $firebase 对象更新? angularFire
change事件可以帮助您同步两者。 -
单独复制数据元素会非常乏味。但肯定有某种方法可以重新初始化远程数据结构。
-
@BrianABird - 如果您使用 angular.copy() 或 angular.extend() 复制会怎样
-
另外请记住,如果您正在使用 $bind,并且范围 var 已经存在,这可能是正在吹走您的远程数据的原因(如果存在本地值,例如空对象它被推送到服务器)。
-
@MikePugh angular.copy() 解决了这个问题!谢谢!
标签: angularjs firebase angularfire