AngularJS Scope
Le scope est le lien entre HTML (vue) et JavaScript (contrôleur).
Scope est un objet avec des méthodes et des propriétés disponibles.
Le Scope peut être appliqué aux vues et aux contrôleurs.
Comment utiliser Scope
Lorsque vous créez un contrôleur dans AngularJS, vous pouvez$scopepasser l'objet en tant que paramètre :
Exemple AngularJS
Les propriétés dans le contrôleur correspondent aux propriétés de la vue :
<h1>{{carname}}</h1>
</div>
<script>
app.controller('myCtrl', function($scope) {
$scope.carname = "Volvo";
});
Essayez-le »
Lorsque vous ajoutez dans le contrôleur$scopel'objet, la vue (HTML) peut obtenir ces propriétés.
Dans la vue, vous n'avez pas besoin d'ajouter$scopecomme préfixe, ajoutez simplement le nom de la propriété, comme :{{carname}}。
Présentation de Scope
Une application AngularJS se compose des éléments suivants :
- Vue, c'est-à-dire HTML.
- Modèle, les données disponibles dans la vue actuelle.
- Contrôleur, c'est-à-dire une fonction JavaScript qui peut ajouter ou modifier des propriétés.
scope est le modèle.
scope est un objet JavaScript avec des propriétés et des méthodes, et ces propriétés et méthodes peuvent être utilisées dans les vues et les contrôleurs.
Exemple AngularJS
Si vous modifiez la vue, le modèle et le contrôleur seront mis à jour en conséquence.
Essayez-le »
Étendue de la portée
Il est très important de comprendre la portée que vous utilisez actuellement.
Dans les deux exemples ci-dessus, il n'y a qu'une seule portée, c'est donc relativement simple, mais dans les grands projets, il y a plusieurs portées dans le DOM HTML, et vous devez savoir quelle portée est celle que vous utilisez.
Exemple AngularJS
Lorsque nous utilisonsng-repeatla directive, chaque élément répété accède à l'objet répété actuel :
<ul>
<li ng-repeat="x in names">{{x}}</li>
</ul>
</div>
<script>
app.controller('myCtrl', function($scope) {
$scope.names = ["Emil", "Tobias", "Linus"];
});
Essayez-le »
Chaque<li>élément peut accéder à l'objet répété actuel, qui correspond ici à une chaîne, et utilise la variablexpour le représenter.
Portée racine
Toutes les applications ont un$rootScope, qui peut agir surng-apptous les éléments HTML contenus par la directive.
$rootScopeIl peut agir sur l'ensemble de l'application. C'est un pont entre les portées dans les différents contrôleurs. Les valeurs définies avec rootscope peuvent être utilisées dans chaque contrôleur.
Exemple AngularJS
Lors de la création d'un contrôleur, passez $rootScope en paramètre, et il peut être utilisé dans l'application :
<h1>{{lastname}}Membres de la famille :</h1>
<ul>
<li ng-repeat="x in names">{{x}} {{lastname}}</li>
</ul>
</div>
<script>
app.controller('myCtrl', function($scope, $rootScope) {
$scope.names = ["Emil", "Tobias", "Linus"];
$rootScope.lastname = "Refsnes";
});
Essayez-le »