如何在 forEach 循环中保存数据?
How can I save data in forEach loop?
我创建了一个 forEach 循环。我可以使用此循环从 Firebase 访问数据,并且可以更改变量。但我无法在 Firebase 上保存这些更改。我怎样才能保存这些更改?这是我的代码:
var posts = $firebaseArray(ref);
posts.$loaded().then(function(item){
item.forEach(function(childSnapshot){
var num = childSnapshot.point-1;
childSnapshot.lastPoint = num;
});
});
您可以创建包含 getter 和 setter 的服务。它看起来像这样;
angular.module('app').factory("DataHandler",
function() {
var data;
return {
get: function() {
return data;
},
set: function(something) {
data = something;
}
}
}
);
然后在您的代码中调用:
var posts = $firebaseArray(ref);
posts.$loaded().then(function(item){
item.forEach(function(childSnapshot){
var num = childSnapshot.point-1;
childSnapshot.lastPoint = num;
DataHandler.set(childSnapshot);
});
});
然后 wherever/whenever 您需要获取该数据,只需调用:
Datahandler.get();
您正在使用 AngularFire framework, which builds UI bindings on top of Firebase's regular JavaScript SDK. You should only be using it for things that you're binding to the Angular UI elements. For everything else, you're likely better off using Firebase's regular JavaScript SDK。
如果我对您的要求理解正确,您正在尝试遍历数据库位置中的所有子节点一次并修改 属性。如果是:
ref.once('value', function(snapshot) {
snapshot.forEach(function(childSnapshot) {
var child = childSnapshot.val();
childSnapshot.ref().update({ lastPoint: child.point - 1 });
});
});
Firebase 文档的相关部分位于 reading data once and updating data。
由于 AngularFire 构建在 Firebase 的 JavaScript SDK 之上,因此它们可以完美地协同工作。因此,如果您在其他地方将帖子绑定到范围 ($scope.posts = $firebaseArray(ref)
),它们将在您使用上述代码片段更新最后一点时自动更新。
我创建了一个 forEach 循环。我可以使用此循环从 Firebase 访问数据,并且可以更改变量。但我无法在 Firebase 上保存这些更改。我怎样才能保存这些更改?这是我的代码:
var posts = $firebaseArray(ref);
posts.$loaded().then(function(item){
item.forEach(function(childSnapshot){
var num = childSnapshot.point-1;
childSnapshot.lastPoint = num;
});
});
您可以创建包含 getter 和 setter 的服务。它看起来像这样;
angular.module('app').factory("DataHandler",
function() {
var data;
return {
get: function() {
return data;
},
set: function(something) {
data = something;
}
}
}
);
然后在您的代码中调用:
var posts = $firebaseArray(ref);
posts.$loaded().then(function(item){
item.forEach(function(childSnapshot){
var num = childSnapshot.point-1;
childSnapshot.lastPoint = num;
DataHandler.set(childSnapshot);
});
});
然后 wherever/whenever 您需要获取该数据,只需调用:
Datahandler.get();
您正在使用 AngularFire framework, which builds UI bindings on top of Firebase's regular JavaScript SDK. You should only be using it for things that you're binding to the Angular UI elements. For everything else, you're likely better off using Firebase's regular JavaScript SDK。
如果我对您的要求理解正确,您正在尝试遍历数据库位置中的所有子节点一次并修改 属性。如果是:
ref.once('value', function(snapshot) {
snapshot.forEach(function(childSnapshot) {
var child = childSnapshot.val();
childSnapshot.ref().update({ lastPoint: child.point - 1 });
});
});
Firebase 文档的相关部分位于 reading data once and updating data。
由于 AngularFire 构建在 Firebase 的 JavaScript SDK 之上,因此它们可以完美地协同工作。因此,如果您在其他地方将帖子绑定到范围 ($scope.posts = $firebaseArray(ref)
),它们将在您使用上述代码片段更新最后一点时自动更新。