从 Firebase 编辑项目

Edit Item from Firebase

本文关键字:项目 编辑 Firebase      更新时间:2023-09-26

这是我之前问题的后续。我正在尝试弄清楚如何编辑存储在我的 Firebase 中的现有项目。我的项目在页面上重复出现,每个项目旁边都有一个"编辑"按钮。

.HTML

<h3>Editing {{ editedProvider.title }}</h3>
<form>
    <input ng-model="editedProvider.title">
    <button type="submit" ng-click="updateProvider()">Submit</button>
</form>
<div ng-repeat="provider in providers">
    <h3>{{ provider.title }}</h3>
    <button type="button" ng-click="setEditedProvider()">Edit</button>
  </div>
</div>

这是我目前将项目添加到列表中的方式:

.JS

var rootRef = new Firebase(FBURL);
var providersRef = rootRef.child('providers');
$scope.newProvider = {};
$scope.providers = [];
providersRef.on('child_added', function(snapshot) {
  $timeout(function() {
    var snapshotVal = snapshot.val();
    console.log(snapshotVal);
    $scope.providers.push({
      title: snapshotVal.title,
      name: snapshot.name()
    });
  });
});
$scope.createProvider = function() {
  var newProvider = {
    title: $scope.title
  };
  providersRef.push(newProvider);
};

然后,我创建了一个函数setEditedProvider并将其绑定到编辑按钮,单击该按钮时会显示该特定项目的编辑表单。但是,当我进行更改时,我需要运行一个名为 updateProvider 的函数,并且在创建该函数时遇到问题。

$scope.editedProvider = null;
$scope.setEditedProvider = function(provider) {
  $scope.editedProvider = angular.copy(provider);
}
$scope.updateProvider = function(provider) {
  // need to take that edited function and push the updated version inside here
}

我可以利用Firebase的数据快照来做到这一点吗,就像我创建项目一样吗?

其中一些终于为我点击了,

我想我明白它需要如何完成,我只是无法弄清楚如何实现它。

感谢对此问题的任何帮助。提前感谢!

$scope.updateProvider = function(provider) {
   providersRef.child(provider.$id).update({tile:Provider.title});
}