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