.controller('MyCtrl', function ($scope, $log) {
$scope.num = 2;
$scope.change = function () {
$scope.num = 3;
};
$scope.show = function () {
$log.info($scope.num);
};
});
Cliquez d'abord sur le bouton Afficher, le résultat de sortie est le suivant :
Cliquez ensuite sur le bouton Passer à 3 et cliquez à nouveau sur le bouton Afficher. Le résultat est le suivant :
.
Cette expérience montre que bien qu'il s'agisse du même contrôleur, les oscilloscopes sont en fait deux oscilloscopes totalement indépendants.
La structure de portée est également en forme d'arborescence, correspondant à la structure dom. La structure html ci-dessus aura deux portées.
Regardons un autre exemple évident :
.controller('MyCtrl', function ($scope, $log) {
$log.info('init scope...');
});
Regardez la console
Le résultat est imprimé deux fois, indiquant que la méthode a été exécutée deux fois. Si la portée est partagée, elle ne sera pas exécutée deux fois.
Pour résumer : vous déclarez une variable i dans le contrôleur et modifiez la valeur de i dans la page a. Lorsque vous accédez à la page b, la valeur de i ne changera pas
C'est bizarre de l'utiliser de cette façon, je ne sais pas si c'est faisable de l'utiliser de cette façon
Personnellement, je pense que l'utilisation normale est :
Une page, un contrôleur
Si vous avez besoin de partager des variables et des méthodes entre contrôleurs, vous pouvez créer un service en angulaire pour stocker les variables et les méthodes dans différents contrôleurs, injectez simplement le service que nous avons écrit
.
La documentation officielle indique également clairement que le service est utilisé pour partager du code :
Prestations
Les services angulaires sont des objets substituables qui sont connectés ensemble à l'aide de l'injection de dépendances (DI). Vous pouvez utiliser des services pour organiser et partager du code dans votre application.
Après avoir changé d'itinéraire, le cycle de vie du contrôleur est terminé et le $scope actuel et les sous-portées sont morts.
Si vous devez partager des données entre plusieurs contrôleurs, vous pouvez utiliser des services.
J'apprends également angulairejs récemment Concernant le problème évoqué par l'affiche, je peux faire une démonstration simple :
Il y a la structure html suivante, différentes vues, le même contrôleur
Partie du code du contrôleur :
Cliquez d'abord sur le bouton Afficher, le résultat de sortie est le suivant :
Cliquez ensuite sur le bouton Passer à 3 et cliquez à nouveau sur le bouton Afficher. Le résultat est le suivant :
.Cette expérience montre que bien qu'il s'agisse du même contrôleur, les oscilloscopes sont en fait deux oscilloscopes totalement indépendants.
La structure de portée est également en forme d'arborescence, correspondant à la structure dom. La structure html ci-dessus aura deux portées.
Regardons un autre exemple évident :
Regardez la console
Le résultat est imprimé deux fois, indiquant que la méthode a été exécutée deux fois. Si la portée est partagée, elle ne sera pas exécutée deux fois.
Pour résumer : vous déclarez une variable i dans le contrôleur et modifiez la valeur de i dans la page a. Lorsque vous accédez à la page b, la valeur de i ne changera pas
.J'espère vous aider !
C'est bizarre de l'utiliser de cette façon, je ne sais pas si c'est faisable de l'utiliser de cette façon
Personnellement, je pense que l'utilisation normale est :
.Une page, un contrôleur
Si vous avez besoin de partager des variables et des méthodes entre contrôleurs, vous pouvez créer un service en angulaire pour stocker les variables et les méthodes dans différents contrôleurs, injectez simplement le service que nous avons écrit
La documentation officielle indique également clairement que le service est utilisé pour partager du code :
Prestations
Les services angulaires sont des objets substituables qui sont connectés ensemble à l'aide de l'injection de dépendances (DI). Vous pouvez utiliser des services pour organiser et partager du code dans votre application.
https://docs.angularjs.org/guide/services
Après avoir changé d'itinéraire, le cycle de vie du contrôleur est terminé et le
$scope
actuel et les sous-portées sont morts.Si vous devez partager des données entre plusieurs contrôleurs, vous pouvez utiliser des services.