Javascript $add之后获取密钥的最佳方法
我使用的是AngularFireV0.5.0 在返回的对象上,我执行$add 获取生成的密钥的最佳方法是什么 它一定是$add的successcallback中的某个东西,因为该键将异步返回Javascript $add之后获取密钥的最佳方法,javascript,angularjs,angularfire,Javascript,Angularjs,Angularfire,我使用的是AngularFireV0.5.0 在返回的对象上,我执行$add 获取生成的密钥的最佳方法是什么 它一定是$add的successcallback中的某个东西,因为该键将异步返回 scope.settings = $firebase(ref); scope.settings.value = { vat: { inclusive: true } } } scope.settings.$add (scope.settings.valu
scope.settings = $firebase(ref);
scope.settings.value = {
vat: {
inclusive: true
}
}
}
scope.settings.$add (scope.settings.value).then( function ( {
scope.settings.key = ???
});
注意:这不是实际代码,这只是为了澄清问题
激活代码在加载的事件中位于工厂内,并且检查数据库中是否已经存在设置对象
这种有点奇怪的构造是为了让工厂的消费者更容易更改设置。设置为单例。AngularFire不返回对象数组,但每个项目都是设置中的一个对象,具有自己的键。
$add
返回Firebase引用。调用该引用上的name()
scope.settings.$add(…).name();
请参阅angularfire文档中的。: $add方法接受任何类型的单个参数。它会将该值作为列表的一个成员附加(按时间顺序排列)。这相当于对Firebase引用调用push(value) 从firebase文档(关于push()): 返回 生成位置的Firebase引用
因此,我认为您想要的“键”是$add的返回值。也许他们在新版本中更改了它,现在它的工作原理如下: $add()将返回一个承诺。您必须使用成功时运行的回调。例如:
var something = $scope.somethings.$add({name: "foo"});
something.then(function(e) {
console.log(e.name())
});
这允许您根据对Firebase的保存/写入尝试的结果执行不同的操作