Per link
, l'ambito non viene iniettato usando l'iniezione di dipendenza di Angular. I controller, ecc. Usano l'iniezione delle dipendenze che si basa sulla corrispondenza dell'argomento della funzione nomi var con qualcosa da iniettare.
link
ha una firma di funzione prevista con argomenti espliciti:
function link(scope, element, attrs) { ... }
Mentre quando lo si utilizza in un controller, l'analisi angolare controlla la funzione di controllo args esplicitamente per nome e determina esattamente come iniettare l'ambito nello stesso modo in cui vengono iniettati i servizi angolari. Nel contesto dell'iniezione di dipendenza, gli oggetti con un prefisso di $
sono considerati servizi forniti angolari.
Contrasto con iniezioni di dipendenze uso di nomi di variabili, non c'è niente che ti impedisca di chiamare gli argomenti del link come vuoi qualsiasi altra funzione. Potresti chiamarlo
function link(cat, banana, aardvark) { ... }
e funzionerebbe ancora ...
Tuttavia con i controller ecc. $ scope con qualsiasi altro nome non è così dolce
angular.module('foo')
.controller('blah', function (scope) {
// doesn't work
...
}