我正在将新子项添加到Firebase列表中,并自动创建唯一ID。我需要一些方法来获取已创建的ID,以便我可以立即将URL位置路径更改为包含该ID的路由。以下是我创建列表项的方法:
.controller('NewTestCtrl', ['$scope', 'syncData', '$location', function($scope, syncData, $location) {
$scope.newTitle = null;
$scope.tests = syncData('tests');
$scope.createTest = function() {
var newDate = new Date();
if( $scope.newTitle ) {
$scope.tests.$add({
title: $scope.newTitle,
createdDate: newDate,
modified: newDate,
user: $scope.auth.user.uid
});
$location.path("/test/" + [FIREBASE UNIQUE ID] + "/1");
}
};
}])
感谢您的帮助!
答案 0 :(得分:3)
angularFire $ add方法返回一个promise,当解析时,它将包含对新推送值的Firebase引用。使用该值,您可以获得UID。
$scope.tests.$add({
...your object....
})
.then(function(ref) {
$location.path("/test/"+ref.name());
});