Javascript firebase:angularfire 0.8.0升级保存记录中的参考名称
我使用angularfire 0.6.0并升级到0.8.0 在我将firebase记录Id保存到记录之前,如下所示:Javascript firebase:angularfire 0.8.0升级保存记录中的参考名称,javascript,angularjs,firebase,angularfire,Javascript,Angularjs,Firebase,Angularfire,我使用angularfire 0.6.0并升级到0.8.0 在我将firebase记录Id保存到记录之前,如下所示: $scope.getOpenPosten.$add({ uID: "bla" }).then(function(ref) { $scope.RecordID = ref.name(); $scope.getOpenPosten[id].
$scope.getOpenPosten.$add({
uID: "bla"
}).then(function(ref) {
$scope.RecordID = ref.name();
$scope.getOpenPosten[id].oID = id;
$scope.getOpenPosten.$save(id);
});
但在0.8.0中,我得到了一个错误:
TypeError:无法设置未定义的属性“oID”
有人有主意吗?从0.6到0.8进行了大幅度升级 在0.6中,当调用
$firebase(ref)
绑定时,数据立即同步。现在,在0.8中,在调用$asObject()
或$asArray()
方法之前,数据不会同步
您可以在$firebase(ref)
绑定上调用$set()
、$update()
或$push()
,将数据保存到您的firebase,而无需同步任何数据。如果要同步和显示数据,需要调用上述$asObject()
或$asArray()
在您的情况下,看起来您希望添加到项目列表中。在这种情况下,$asArray()
将最有效:
$scope.openPostens = $firebase(yourRef).$asArray();
$scope.openPostens.$add({ uid: 'blah' }).then(function(ref) {
ref.update({ oID: ref.name() });
});
另外,看起来您希望保存由推送到对象创建的唯一id。在AngularFire中,你不必这么做
您可能需要使用
$asObject()
。看见
var obj = $firebase(ref).$asObject();
obj.foo = "bar";
obj.$save().then(function(ref) {
ref.name() === obj.$id; // true
});