我试图更新Firebase中我的services
项目的所有子项的“名称”,以删除所有前导和尾随空格。我使用正则表达式来实现这一点,但我似乎无法弄清楚为什么它不起作用。Firebase儿童的更新值
我在快照中使用.forEach
循环浏览了我的services
项目,但似乎并未将新值保存到Firebase。
这是因为我应该在$firebaseObject
上使用$save
?
这是我的代码如下所示:
var servicesRef = ref.child('services');
servicesRef.on('value', function(snap) {
snap.forEach(function(serviceSnap) {
var item = serviceSnap;
item.name = name.replace(/^\s+|\s+$/g,'');
item.$save();
});
});
任何帮助表示赞赏。提前致谢!
嗨realph。这被认为是AngularFire的反模式 - 查看[这个答案](http://stackoverflow.com/a/29835485/1526037)上的评论。正如@FrankvanPuffelen所说:“如果你在'$ firebaseObject'(或$ firebaseArray')之后直接使用'$ loaded()',那么你可能做错了一些事情。”“ –
有用。我只是用它来进行一些调试以从一些字符串中删除一些空白区域。这就是说,如果我想在生产中做类似的事情,那么最好的方法是做什么? – realph
您可以在初始插入/更新时修复它,而不是每次获取列表。 –