Co to jest $ scope w AngularJS?
$ scope w AngularJS jest wbudowanym obiektem, który w zasadzie wiąże "kontroler" i "widok". Można zdefiniować zmienne składowe w zakresie w obrębie kontrolera, do których widok może następnie uzyskać dostęp.
Rozważ poniższy przykład:
angular.module('app',[]).controller('HelloWorldCntrl'function($scope){$scope.message = "Hello World"});
Objaśnienie kodu:
- Nazwa modułu to „aplikacja”
- Nazwa kontrolera to „HelloWorldCntrl”
- Obiekt Scope to główny obiekt, który służy do przekazywania informacji ze sterownika do widoku.
- Zmienna składowa dodana do obiektu zasięgu
Konfigurowanie lub dodawanie zachowania
Aby reagować na zdarzenia lub wykonywać jakieś obliczenia / przetwarzanie w Widoku, musimy zapewnić zachowanie zakresu.
Zachowania są dodawane do obiektów zakresu, aby reagować na określone zdarzenia, które mogą być wyzwalane przez View. Po zdefiniowaniu zachowania w kontrolerze można uzyskać do niego dostęp za pomocą widoku.
Spójrzmy na przykład, jak możemy to osiągnąć.
Guru99 Guru99 Global Event
{{fullName("Guru","99")}}
Objaśnienie kodu:
- Tworzymy zachowanie o nazwie „fullName”. To zachowanie jest funkcją, która przyjmuje 2 parametry (firstName, lastname).
- Zachowanie zwraca następnie konkatenację tych 2 parametrów.
- W tym widoku wywołujemy zachowanie i przekazujemy 2 wartości „Guru” i „99”, które są przekazywane jako parametry zachowania.
Jeśli polecenie zostanie wykonane pomyślnie, następujące dane wyjściowe zostaną wyświetlone po uruchomieniu kodu w przeglądarce.
Wynik:
W przeglądarce zobaczysz konkatenację obu wartości Guru i 99, które zostały przekazane do zachowania w kontrolerze.
Podsumowanie
- Do obiektu zakresu można dodać różne zmienne składowe, do których można następnie odwoływać się w widoku.
- Zachowanie można dodać do pracy ze zdarzeniami, które są generowane dla akcji wykonywanych przez użytkownika.
- Angularjs
$rootScope
to zakres dla całej aplikacji. Aplikacja może mieć tylko jedną $ rootScope i jest używana jak zmienna globalna. W Angular JS zakresy $ są zakresami potomnymi, a $ rootScope jest zakresem nadrzędnym