2013-09-18 6 views
0

Каждый пример, который я когда-либо видел в приложении Angular с Firebase, имел очень статический путь.Извлечение данных Firebase в обратном вызове AngularFire

Нажмите кнопку Добавить -> Переходит к New View

Нажмите Save -> Сохранение данных и маршрутов в списке

Нажмите на пункт (с учетом списка) -> Маршруты вы редактируемых вид этого объекта с использованием $ routeparams

Я пытаюсь написать функцию, которая добавляет новый объект в коллекцию fb И маршрут является пользователем для редактирования вида этого объекта и в одном действии. Метод add() AngularFire принимает обратный вызов, если бы я мог получить $ id для объекта, который был добавлен только в этот обратный вызов, я мог бы использовать $ ropeeparams для выполнения требуемого действия.

Возможно ли это?

* Обновление: я использую метод AngularFire .add(), который получается modified, чтобы вернуть новую ссылку на данные. Как эти данные действительно доступны?

например. $scope.object.add(localObject);

+0

Вы можете сделать 'var ref = $ scope.object.add (localObject)' и извлечь имя через 'ref.name()'. – Anant

ответ

2

Если вы используете push(), имя() предоставит вам идентификатор, сгенерированный FB.

var ref = new Firebase('https://<yourfb>.firebaseio.com/somepath'); 
var name = ref.push($scope.currentObject).name(); 
$location.path('/somepath/' + name); 
+1

Да, я имею в виду, что я вижу это в API (https://www.firebase.com/docs/javascript/datasnapshot/name.html), и это имеет смысл, но я использую метод AngularFire .add() (http : //angularfire.com/source.html), который возвращает ссылку после запуска этого метода с момента этого обновления (https://github.com/firebase/angularFire/pull/26#issuecomment-19065964). На данный момент я не вижу способа получить доступ к возвращенной ссылке на данные. – Swordfish0321

Смежные вопросы