Заметил такую особенность поведения в angularJS: при объявлении анонимных функций для описания какой-либо сущности в ангуляре, порядок аргументов и их количество вообще не важно. То есть, ангуляр с помощью какого-то механизма в джаваскрипте в рантайме узнает, какие переменные передавать коллбэку. Вот пример:
.controller('ExampleCtrl', function($scope, $http) { /* мой код */ })
Т.е. вне зависимости от того, в каком порядке я расположу аргументы $scope и $http, переменные в теле функции будут ссылаться на "правильные" объекты.
С помощью какого механизма джаваскрипта ангуляр знает, в каком порядке и какие переменные передавать моей анонимной функции?
(Если что, вот пример работающего кода
jsfiddle.net/S4tZV )