Korzystanie angularFire
jeśli chcesz niejawny synchronizacji, czyli wszelkie zmiany wprowadzone do modelu błyskawicznie rozprzestrzeniać się do wszystkich pozostałych klientów (i odwrotnie).
Użyj angularFireCollection
, jeśli chcesz mieć kontrolę nad tym, kiedy wszelkie lokalne zmiany danych muszą zostać wysłane na serwer. Wszelkie zdalne zmiany nadal automatycznie aktualizują lokalną kolekcję.
niejawny synchronizacji:
myapp.controller('MyCtrl', ['$scope', 'angularFire',
function MyCtrl($scope, angularFire) {
var promise = angularFire(url, $scope, 'items', []);
}
]);
Pierwszy argument jest lokalizacja Firebase w którym chcesz zapisać/odzyskać dane. Drugi argument to zasięg, trzeci argument to nazwa właściwości pod $ scope, którą chcesz powiązać z danymi zaraz po wypełnieniu obietnicy. Na przykład:
promise.then(function() {
// Data available in $scope.items
});
Czwarty argument to typ danych, które chcesz w swoim obiekcie JS. Użyj []
dla tablic, {}
dla obiektów, ""
dla ciągów znaków, 1
dla liczb i true
dla wartości logicznych. Pamiętaj, że jeśli w podanej lokalizacji Firebase nie ma żadnych danych, możesz użyć tego argumentu do ustawienia wartości domyślnej.
W niejawnej synchronizacji, jeśli chcesz wprowadzić jakiekolwiek zmiany, po prostu zmodyfikuj $scope.items
, a zmiana zostanie automatycznie zsynchronizowana ze wszystkimi innymi klientami za pośrednictwem Firebase. Podobnie wszelkie zmiany dokonane zdalnie automatycznie zaktualizują się o $scope.items
.
Explicit sync:
myapp.controller('MyCtrl', ['$scope', 'angularFireCollection',
function MyCtrl($scope, angularFireCollection) {
$scope.items = angularFireCollection(url);
}
]);
Ta metoda pobiera tylko jeden argument. Jeśli chcesz dodać lub usunąć elementy, użyj metod: , remove
lub remove
lub remove
. Na przykład:
$scope.items.add({test: "object"});
Od angularFireCollection
nie wymaga zakres, można również korzystać z tego, jeśli chcesz używać Firebase poza kontrolerem (np kątowych dyrektyw, modułów itp) Mam nadzieję, że to pomaga!
Myślę, że masz na myśli "implicit" zamiast "explicit" w swoim pierwszym zdaniu. – bennlich
W jawnej synchronizacji. więc nie używamy już metody .on() .set() .push()? – vzhen
Dzięki @bennlich, naprawiony! @vzhen Nie, w jawnej synchronizacji używaj tylko 'add()', 'remove()' i 'update()'. – Anant