【发布时间】:2014-12-05 02:28:53
【问题描述】:
我正在研究如何更新存储在我的 Firebase 中的项目。我已经设法让它达到我可以创建和删除项目的地步。我现在想编辑和更新现有项目。我的项目在页面上重复出现,每个项目旁边都有一个“编辑”按钮。
HTML
<form>
<input type="text" placeholder="Enter title here" ng-model="editedProvider.title">
<button type="submit" ng-click="updateProvider(provider.name)">Submit</button>
</form>
我正在将项目添加到我的列表中,如下所示:
JS
$scope.newProvider = {};
$scope.providers = [];
providersRef.on('child_added', function(snapshot) {
$timeout(function() {
var snapshotVal = snapshot.val();
$scope.providers.push({
title: snapshotVal.title,
name: snapshot.name()
});
});
});
// Create Item
$scope.createProvider = function() {
var newProvider = {
title: $scope.title,
};
providersRef.push(newProvider);
};
我不知道如何更新此项目。我有一个如下所示的更新提供程序函数:
$scope.updateProvider = function(name) {
providersRef.child(name).update({
title: snapshotVal.title
});
};
但这会在控制台中显示此错误:
错误:Firebase.child 失败:第一个参数是无效路径:“未定义”。路径必须是非空字符串,并且不能包含“.”、“#”、“$”、“[”或“]”
我尝试创建一个函数来查找使用 snapshot.name() 来检查它与我正在编辑的项目,以使用新值更新 title,但它似乎不起作用。
知道我做错了什么吗?
我已经设置了Plunker over here。感谢您对我做错的任何帮助。
【问题讨论】:
-
当我在那个 plunker 中更新医院时,我在控制台中收到一条错误消息。请在您的问题中包含此错误消息,因为人们不应该去您的 plunker 获取它。
标签: javascript angularjs firebase