Widzę wiele samouczków dotyczących uwierzytelniania, które umieszczają obiekt 'auth' na $ rootScope, w tym AngularFire-seed od osób FireBase.
Uważam, że umieszczanie obiektów na korzeniach było złym zwyczajem, a zamiast tego należy raczej stworzyć usługę. Dlaczego to (najwyraźniej) jest ok, jeśli chodzi o uwierzytelnianie? A może bardziej ogólne pytanie: kiedy jest ok, a może nawet dobra praktyka, aby umieścić coś na korzeniach?
Podać inny przykład. Mam dodatkowo obiekt profilu na użytkowniku. Czy można również dodać to do auth-obiektu? Nawet nie zanieczyszczam korzenia w tym przypadku, ponieważ obiekt autowy już tam jest. Czy można umieścić profil na rootcope w ten sposób (przez obiekt auth)? Jeśli nie, dlaczego?
wiem, było kilka pytań, ale wszystkie one sprowadzają się do jednego qeustion w tytule ...
NIE umieszczam całego obiektu auth/session w rootScope. Wolę mieć kontroler poziomu aplikacji podłączony do
, który zapewnia metody zasięgu, które wywołują usługę, która zawiera dane auth. W ten sposób jest on nadal w zasadzie "globalny", ale nie jest w rootScope. Biorąc pod uwagę, że klient ma już całą aplikację, nie jest tak naprawdę lepiej czy bezpieczniej, koniecznie mieć rzeczy w usłudze vs rootScope, myślę, że sprowadza się to do miejsca i sposobu uzyskania dostępu do danych. Umieszczenie rzeczy w rootScope sprawia, że są one globalnie dostępne z Twoich widoków. – aetJeśli dane są naprawdę wspólne dla wszystkich zakresów, to $ rootScope jest idealnym miejscem do umieszczenia tych danych. – mccainz
Nice rootScope-altnerative @aet. Prawdopodobnie nie skorzystam z tego, ale dobrze jest wiedzieć o alternatywach. – EricC