2013-05-13 9 views
9

W poniższym non-angularfire pseudo-kodu byłoby oczekiwać, aby mieć Firebase wygenerować klucz dla nowych danych pchanych w.Co to jest odpowiednik firebaseRef.push() z angularfire?

var ref = Firebase(...); 
var newref = ref.push({"blah":"blah"}); 
var autoKey = newref.name(); 

staram się zrobić to samo przez angularfire z oprawionego modelu, ale to po prostu daje mi błędy dotyczące obiektu, który nie ma metody push(), podobnej do this question. Sprawił, że działał, gdy typem danych była tablica.

Jak uzyskać ładne zachowanie, które widziałem w zwykłej Firebase (non-angleularFire) z automatycznymi klawiszami dla obiektów?

Odpowiedz

7

Jeśli chcesz użyć obiektu i mieć wygenerowane automatycznie klucze, użyj metody add na angularFireCollection. Na przykład:

function ExampleController($scope, angularFireCollection) { 
    var url = 'https://angularFireExample.firebaseio-demo.com/'; 
    $scope.examples = angularFireCollection(url); 
    $scope.addExample = function(ex) { 
    $scope.examples.add(ex); 
    }; 
} 
+0

Ah, to brzmi obiecująco, spróbuję tego dziś wieczorem. Czy istnieje odniesienie do API dla angularFire, inne niż spojrzenie na kod? –

+3

Dla każdej pozycji, która kończy się w '$ scope.examples' powyżej, dostaje dodatkowych członków' $ ref', '$ id' oraz' $ index' dodanych podczas wyciągania z Firebase. Zobacz klasę 'angularFireItem' zdefiniowaną w [angularFire.js] (https://github.com/firebase/angularFire/blob/gh-pages/angularFire.js). –

+0

Czy '$ scope.examples' będzie synchronizowane z danymi firebase? – vinesh