Qu'est-ce que $scope dans AngularJS? [fermé]

Je suis nouveau sur AngularJS et je ne peux pas comprendre ce que $scope est dans AngularJS. Quelqu'un peut-il expliquer de la manière la plus simple possible ce que fait $scope dans AngularJS et à quoi pouvons-nous l'utiliser? Veuillez l'expliquer d'une manière que vous expliqueriez à quelqu'un qui n'a absolument aucune connaissance de la programmation. Quelqu'un peut-il aussi expliquer le code ci-dessous ligne par ligne de la manière la plus simple possible?

function MyController($scope) {
    $scope.username = 'World';

    $scope.sayHello = function() {
        $scope.greeting = 'Hello ' + $scope.username + '!';
    };
};
37
demandé sur Sébastien 2014-06-23 11:11:13

2 réponses

Chaque contrôleur a un objet $scope associé.

Une fonction controller (constructeur) est responsable de la définition des propriétés et des fonctions du modèle. Cela ne peut être fait que via $scope. Quelle que soit la fonction ou le modèle que vous appliquez dans View (fichier html), accessible dans controller en utilisant scope.

Seules les méthodes définies sur cet objet $ scope sont accessibles depuis le HTML / view. Exemple - à partir de ng-click, filtres, etc.

Prenons maintenant vos exemples un par un –

1.

 function MyController($scope) {
 $scope.username = 'World';
 };

Dans l'exemple ci-dessus, vous définissez n'importe quel attribut nommé username avec sa valeur "World". Supposons que dans le fichier html vous avez la ligne de code suivante -

<div ng-controller="MyController">
<h1>{{data.username}}</h1></div>

Cela prendra automatiquement la valeur du contrôleur et l'affichera à l'écran. Il est intéressant de noter que "les données."dans le balisage est le nom du contrôleur de la page html peut se référer au controller. Ceci est généralement défini dans le contrôleur ou en haut de la fichier html.

2.

$scope.sayHello = function() {
$scope.greeting = 'Hello ' + $scope.username + '!';
};

C'est une fonction que vous avez définie dans un contrôleur auquel vous pouvez accéder en vue en suivant le code -

<div ng-controller="MyController">
<h1>{{data.greeting}}</h1></div>

Ici, les données.greeting sélectionnera automatiquement la valeur de la fonction sayHello, c'est-à-dire que la valeur affichée sera "Hello World". "Monde" du nom d'utilisateur concaténé avec" Bonjour " avant.

J'espère que cela dissipe votre doute. :)

52
répondu Manvi 2017-01-12 17:26:31

Lisez Le Manuel Suivant .

En d'autres termes, scope est un "objet" qui "lie" à L'élément DOM où vous appliquez le contrôleur. Tous les éléments enfants peuvent lire et modifier les données de portée (sauf si vous modifiez des primitives dans de nouvelles étendues ou si elles sont isolées).

7
répondu Miraage 2014-06-23 10:08:55