Wpis z mikrobloga

#programowanie #angularjs #javascript #noobalert

Mam kod z pewną aplikacją w AngularJS, próbuję to jakoś ogarnąć, ale mam dosyć podstawowe pojęcie jak to działa.
Mam kontroler o nazwie "AdminCtrl":

angular.module('nodetestsApp')
.controller('AdminCtrl', function ($scope, $http, Auth, User) {
//jakiś kod
});

Funkcja otrzymuje jakieś dane ($scope, $http, Auth, User). Skąd się biorą te zmienne?

Przerabiałem kiedyś tutorial z Angulara, to działało to tak, że miałem controller i przekazywałem mu 2 zmienne: nazwę kontrolera i tablicę z gdzie wymieniałem metody które chcę uzywać. Wyglądało to tak:

myApp.controller('DoubleController', ['$scope', function($scope) {
}]);

Czyli jest nawias kwadratowy, string o wartości '$scope' który określa że będę używał $scope w moim kontrolerze no i funkcja która odbiera te metody.
W kodzie który analizuję nie ma nawiasu kwadratowego. Skąd więc biorą się w takim razie te funkcje? Czy jest jakieś konkretne miejsce w którym z góry zakłada się jakie dane otrzymują kontrolery?
  • 8
@Pietrek558: Angular sam ogarnia co wstrzyknąć w zmienną na podstawie jej nazwy. Praktyka dość niepolecana, bo potem przy minimalizacji plików nie można użyć opcji skracania nazw zmiennych.
@Pietrek558: są one pobierane z kontenera, domyślnie angular odpala te wszelkie controllery w kontenerze i wtedy te $scope, $http i tak dalej odwołują się do zmiennych z kontrolera, przy np minifikacji plików to te zmienne zostaną zastąpione krótkimi nazwami i dlatego korzysta się w 99,9% przypadków z tej drugiej opcji