Maison > interface Web > js tutoriel > Explication détaillée de l'utilisation d'AngularJS controller_AngularJS

Explication détaillée de l'utilisation d'AngularJS controller_AngularJS

WBOY
Libérer: 2016-05-16 15:11:13
original
1989 Les gens l'ont consulté

Le rôle du contrôleur dans Angularjs est d'améliorer la vue. Il s'agit en fait d'une fonction utilisée pour ajouter des fonctionnalités supplémentaires à la portée dans la vue. Nous l'utilisons pour définir l'état initial de l'objet de portée et ajouter des comportements personnalisés. .

Lorsque nous créons un contrôleur sur la page, Angularjs générera et transmettra un $scope au contrôleur Puisque Angularjs instanciera automatiquement le contrôleur, il nous suffit d'écrire le constructeur. L'exemple suivant montre l'initialisation du contrôleur :

function my Controller($scope){
 $scope.msg="hello,world!"; 
}
Copier après la connexion

La méthode ci-dessus de création d'un contrôleur polluera l'espace de noms global. Une approche plus raisonnable consiste à créer un module, puis à créer le contrôleur dans le module, comme suit :

var myApp=angular.module("myApp",[]);
myApp.controller("myController",function($scope){
 $scope.msg="hello,world!";
})
Copier après la connexion

Utilisez la commande intégrée ng-click pour lier des boutons, des liens et d'autres éléments DOM pour cliquer sur des événements. La directive ng-click lie l'événement mouseup dans le navigateur au gestionnaire d'événements défini sur l'élément DOM (par exemple, lorsque le navigateur déclenche un événement click sur un élément DOM, la fonction sera appelée). Semblable à l'exemple précédent, la liaison ressemble à ceci :

<div ng-controller="FirstController">
<h4>The simplest adding machine ever</h4>
<button ng-click="add(1)" class="button">Add</button>
<a ng-click="subtract(1)" class="button alert">Subtract</a>
<h4>Current count: {{ counter }}</h4>
</div>
Copier après la connexion

Les boutons et les liens sont liés à une opération dans le $scope interne. AngularJS appellera la méthode correspondante lorsqu'un élément est cliqué. Notez que lors de la définition de la fonction à appeler, un paramètre (add(1)) sera également passé entre parenthèses

app.controller('FirstController', function($scope) {
$scope.counter = 0;
$scope.add = function(amount) { $scope.counter += amount; };
$scope.subtract = function(amount) { $scope.counter -= amount; };
});
Copier après la connexion

La plus grande différence entre Angularjs et les autres frameworks est que le contrôleur n'est pas adapté pour effectuer des opérations DOM, des opérations de formatage ou de données, ainsi que des opérations de maintenance d'état autres que le stockage du modèle de données. Il s'agit simplement d'un pont entre la vue et $scope. .

Imbrication du contrôleur (la portée contient la portée)

Toute partie d'une application AngularJS, quel que soit le contexte dans lequel elle est rendue, a une portée parent. Pour le niveau où se trouve ng-app, sa portée parent est $rootScope.

Par défaut, lorsqu'AngularJS ne trouve pas une propriété dans la portée actuelle, il la recherchera dans la portée parent. Si AngularJS ne trouve pas l'attribut correspondant, il recherchera vers le haut le long de la portée parent jusqu'à ce qu'il atteigne $rootScope. S'il n'est pas trouvé dans $rootScope, le programme continuera à s'exécuter, mais la vue ne sera pas mise à jour.

Regardons ce comportement à travers un exemple. Créez un ParentController, qui contient un objet utilisateur, puis créez un ChildController pour référencer cet objet :

app.controller('ParentController', function($scope) {
$scope.person = {greeted: false};
});
app.controller('ChildController', function($scope) {
$scope.sayHello = function() {
$scope.person.name = 'Ari Lerner';
};
});
Copier après la connexion

Si nous plaçons le ChildController à l'intérieur du ParentController, la portée parent de l'objet $scope du ChildController est l'objet $scope du ParentController. Selon le mécanisme d'héritage prototypique, nous pouvons accéder à l'objet $scope de ParentController dans la portée enfant.

<div ng-controller="ParentController">
<div ng-controller="ChildController">
<a ng-click="sayHello()">Say hello</a>
</div>
{{ person }}
</div>
Copier après la connexion

Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il vous sera utile pour votre étude et vous aidera à vous familiariser avec le contrôleur AngularJS.

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal