Bonjour,
Je suis en train d'apprendre AngularJs.
Chaque ng-repeat a son propre scope non? Alors pourquoi mon code réagi ainsi?
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<div ng-app="app">
<div ng-controller="exCtrl">
<input ng-model=count /> [{{count}}]<br><hr>
<div ng-repeat="v in [1,2,3]">
<button ng-click="incr()">{{count}}</button>
</div>
</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>
<script>
var app = angular.module("app", []);
app.controller("exCtrl", function($scope) {
$scope.count = 1;
$scope.incr = function(){$scope.count++;};
});
</script>
</body>
</html>
Merci.
Parceque la fonction est au niveau du scope du controller, donc la fonction affecte le scope du controller. Si en revanche tu mettais count = count + 1 dans ton click il affecterait alors le scope dans le repeat.
Erreur de manipulation : tu n'a pas répondu à ma question lol.
Sinon, il y a 3 buttons dans 3 scopes différents (ng-repeat), ils modifient la propriété (de leur scope...) $scope.count par le biais d'une fonction de leur scope $scope.incr(). Pourquoi la fonction incr() affecte tous les $scope.count?