Domaines AngularJS
- Page précédente Contrôleurs AngularJS
- Page suivante Filtres AngularJS
Le scope (scope) est la partie de liaison entre HTML (vue) et JavaScript (contrôleur).
Le scope est un objet avec des propriétés et des méthodes disponibles.
Le scope est disponible pour la vue et le contrôleur.
Comment utiliser le scope ?
Lorsque vous créez un contrôleur en AngularJS, vous allez $scope
Un objet est passé en tant que paramètre :
Instance
Les attributs créés dans le contrôleur peuvent être appelés dans la vue :
<div ng-app="myApp" ng-controller="myCtrl"> <h1>{{carname}}</h1> </div> <script> var app = angular.module('myApp', []); app.controller('myCtrl', function($scope) { $scope.carname = "Volvo"; }); </script>
Lorsque vous ajoutez $scope
lorsque vous ajoutez des propriétés à un objet, la vue (HTML) peut accéder à ces propriétés.
Dans la vue, vous n'utilisez pas $scope
Préfixe, vous n'avez besoin de référer qu'à un nom de propriété, par exemple {{carname}}
.
Comprendre le domaine
Si nous considérons une application AngularJS comme composée des éléments suivants :
- La vue, le HTML.
- Le modèle, les données disponibles pour la vue actuelle.
- Le contrôleur, une fonction JavaScript, est utilisée pour créer / modifier / supprimer / contrôler les données.
Alors le domaine est le modèle.
Un domaine est un objet JavaScript ayant des propriétés et des méthodes, ces propriétés et méthodes sont accessibles à la vue et au contrôleur.
Instance
Si vous effectuez des modifications dans la vue, le modèle et le contrôleur seront mis à jour :
<div ng-app="myApp" ng-controller="myCtrl"> <input ng-model="name"> <h1>Mon nom est {{name}}</h1> </div> <script> var app = angular.module('myApp', []); app.controller('myCtrl', function($scope) { $scope.name = "Bill Gates"; }); </script>
Comprendre votre domaine
Il est important de comprendre le domaine que vous traitez à tout moment.
Dans les deux exemples ci-dessus, il n'y a qu'un seul domaine, donc comprendre votre domaine n'est pas un problème, mais pour des applications plus grandes, certaines parties du DOM HTML ne peuvent accéder qu'à certains domaines.
Instance
Lorsque vous traitez l'instruction ng-repeat, chaque répétition peut accéder à l'objet répété courant :
<div ng-app="myApp" ng-controller="myCtrl"> <ul> <li ng-repeat="x in names">{{x}}</li> </ul> </div> <script> var app = angular.module('myApp', []); app.controller('myCtrl', function($scope) { $scope.names = ["Emil", "Tobias", "Linus"]; }); </script>
Chaque <li>
Les éléments peuvent accéder à l'objet répété courant, dans cet exemple une chaîne, en utilisant x
pour les référer.
un domaine racine
Toutes les applications ont $rootScope
, il s'agit de celui qui contient ng-app
Le domaine créé sur l'élément HTML de l'instruction.
Le rootScope est disponible dans tout l'application.
Si une variable a le même nom dans le domaine courant et dans le rootScope (rootScope), l'application utilisera la variable du domaine courant.
Instance
L'ensemble du domaine du contrôleur et du rootScope contient une variable nommée "color":
<body ng-app="myApp"> <p>La couleur favorite du rootScope:</p> <h1>{{color}}</h1> <div ng-controller="myCtrl"> <p>Le domaine de la couleur préférée du contrôleur :</p> <h1>{{color}}</h1> </div> <p>La couleur préférée du rootScope reste :</p> <h1>{{color}}</h1> <script> var app = angular.module('myApp', []); app.run(function($rootScope) { $rootScope.color = 'blue'; }); app.controller('myCtrl', function($scope) { $scope.color = "red"; }); </script> </body>
- Page précédente Contrôleurs AngularJS
- Page suivante Filtres AngularJS