Maison > Article > interface Web > Une brève discussion sur angulaireJS scope_AngularJS
<!doctype html> <html ng-app="firstApp"> <head> <meta charset="utf-8"> <script src="angular-1.3.0.js"></script> </head> <body> <div ng-controller="parentCtrl"> <input ng-model="args"> <div ng-controller="childCtrl"> <input ng-model="args"> </div> </div> <script> var app=angular.module('firstApp',[]); app.controller('parentCtrl',function($scope) { $scope.args = '123'; }).controller('childCtrl', function($scope) { }); </script>
Description du cas :
Bien qu'aucun attribut args spécifique ne soit défini dans childCtrl, car la portée de childCtrl hérite de la portée de parentCtrl,
Par conséquent, childCtrl est lié à la propriété scope args parent via le prototype et est défini sur l'entrée. Et la valeur d'entrée dans l'entrée parent est automatiquement synchronisée avec l'entrée enfant
Mais l’inverse n’est pas vrai. Autrement dit, les modifications apportées à l'enfant ne peuvent pas modifier la valeur dans le parent, et l'enfant est également désynchronisé après la modification du parent. La raison : lors de la saisie de contenu dans la portée enfant,
.
Étant donné que le modèle dans le code HTML est explicitement lié à la portée de childCtrl, AngularJS générera un attribut de type primitif args pour childCtrl.
Selon le mécanisme de prototype d'héritage de portée AngularJS, childCtrl trouve la valeur de l'attribut args dans sa propre portée, il ne recherche donc pas la valeur args du parent.
Par conséquent, la portée enfant a des arguments et la portée parent a des arguments, et les valeurs entre l'enfant et le parent ne seront plus synchronisées.
Ce qui précède représente l’intégralité du contenu de cet article, j’espère que vous l’aimerez tous.