我正在试图弄清楚如何更新firebase数组中的项目。我像这样显示数组:
tr(ng-repeat="client in clients")
td
button(ng-click="addClient(client)")
问题是我的addClient(client)
方法实际上打开了一个模态窗口,允许用户进行修改。通常我在这种情况下做的是克隆传递给模态窗口的client
对象,这样在用户关闭模态窗口之前不会修改原始对象:
app.controller('modalEditClient', ($scope, $modalInstance, client) ->
$scope.client = angular.clone(client)
当我从模态窗口返回时,我认为我可以做这样的事情: $ scope.clients。$保存(newClient)
但是这失败了,因为newClient
实际上是原始客户端的克隆版本。
我的问题是:最好的方法是什么?我应该只删除原始客户端而只是$add(newClient)
吗?或者有没有办法用新对象中的数据更新原始对象上的数据?
答案 0 :(得分:1)
改编加藤的评论
因为我在模态窗口中克隆了一个对象,$firebaseArray
并不了解它。因此,当我修改克隆并需要写回原始firebase对象时,我必须将更改应用回原始对象。
angular.extend(original_object, new_object)
解决了这个问题。然后我可以像往常一样使用$firebaseArray
将数据保存回firebase:
$scope.items.$save(original_object)