这是我previous question的后续行动。我试图弄清楚如何编辑存储在我的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的数据快照,就像我创建项目一样?
其中一些终于点击了我,我想我明白了它是如何完成的,我只是不知道如何实现它。
对此问题的任何帮助表示赞赏。提前谢谢!
答案 0 :(得分:0)
$scope.updateProvider = function(provider) {
providersRef.child(provider.$id).update({tile:Provider.title});
}