/ / Dlaczego rozbijany jest przykład czatu AngularFire? - angularjs, firebase, angularfire

Dlaczego rozbijany jest przykład czatu AngularFire? - angularjs, firebase, angularfire

W ramach ćwiczenia dodawałem uwierzytelnianie poczty e-mail do podstawowej aplikacji czatu angularFire, zgodnie z opisem http://angularfire.com/tutorial/. W trakcie tego procesu zauważyłem usunięcie pierwszego wpisu przez kuźnię, a niezdefiniowany wpis pojawił się w DOM, gdzie poprzednio był wpis 0.

Po usunięciu drugiego (id 1) wpisu nic nie pojawiło się z powodu następującego komunikatu o błędzie: Duplikaty w repeater nie są dozwolone. Repeater: msg w kluczu message: undefined: undefined

Zauważyłem pierwsze niezdefiniowane pokazy wsamouczek, z którego mój kod został wyprowadzony, ale nie drugi, dopóki nie zastąpię adresu URL .firebaseio-demo.com tym, który jest w mojej bazie ogniowej. To prowadzi mnie do przekonania, że ​​nie jest to moja implementacja kodu.

Co kryje się za dymem i lustrami .firebaseio-demo.com, którego mi brakuje? Czy istnieje zasada walidacji tajemnic czy coś takiego?

W pewnym momencie przykład Wire up a Backend na angularjs.org miał ten sam problem. Ostatnio wydaje się, że został poprawiony.

Odpowiedzi:

0 dla odpowiedzi № 1

Widzę to samo, co wydaje mi się błędem (przedmioty usunięte z tablicy w kuźni nie powinny pojawiać się w angularFire powiązana tablica modeli na kliencie). Efekt ten nie zdarza się również podczas używania kolekcji obiektów zamiast tablic, np. Podczas używania angularFireCollection lub podczas ustawiania oryginału messages wpisz do obiektu: $scope.messages = {} zamiast $scope.messages = [].

Jednak od tych usuniętych elementów pojawia się w wynikowej tablicy jako undefined, mające więcej niż jeden undefined w twojej macierzy powstaje wzmacniacz AngularJS z identycznymi wartościami, które niedozwolone. Tak więc błąd, który widzisz po usunięciu wielu wiadomości, faktycznie jest oczekiwany.

Niezależnie od tego, wydaje się, że najlepszym sposobem na uniknięcie tego jest używanie kolekcji obiektów zamiast tablic, jak wspomniano powyżej, lub ustawienie pewnego rodzaju Angularnego filter wykorzenić każdą undefined członkowie twojego przemiennika.