Je suis un peu confus quand je suis nouveau sur Angular. Prenez la fonction de contrôleur suivante comme exemple
. function hello($scope) {
$scope.name = '张三'
}
Il s'agit d'une déclaration de fonction, $scope devrait être un paramètre formel, n'est-ce pas ? Mais changer $scope par un autre identifiant tel que s ne fonctionnera pas. On peut voir que $scope est le paramètre réel transmis lorsque la fonction hello est appelée. Mais ces trois lignes de code sont des déclarations de fonctions, alors pourquoi les paramètres réels sont-ils transmis ?
J'ai probablement réalisé que ce n'est pas une déclaration de fonction normale. Peut-être que cela a quelque chose à voir avec le mécanisme de liaison des fonctions du contrôleur d'Angular ? A quoi ça ressemble exactement ?
Ce type de passage de paramètres pour obtenir des dépendances est une fonctionnalité majeure d'AngularJS - l'une des manifestations de l'injection de dépendances.
Mais pourquoi pouvons-nous obtenir des dépendances en déclarant simplement des paramètres ?
AngularJS utilise
$injector
pour gérer les requêtes et le chargement dépendants, tels queS'il n'y a pas de déclaration explicite,
$injector
déduit la dépendance en fonction du nom du paramètre À ce stade, l'ordre des paramètres n'a aucun sens.Autrement dit, on peut aussi déclarer ainsi :
Eh bien, cette chose n'est qu'une déclaration de fonction là où elle est écrite. L'importance du nom du paramètre formel est entièrement décidée par le lecteur. L'analyseur standard ECMAScript ne pense pas que ce soit important (je suppose), mais Angular. l'a écrit en js. js" analyseur. . . De cette façon, le nom du paramètre de fonction est important
http://note.sdo.com/u/635412003927148913/n/s6cBN~lcIHwG4M1-Y000LW