AngularJS - Champ d'application n'est pas ce qu'attend l'intérieur d'une ng-cliquez sur l'événement de ng-repeat
J'ai ce bout de code:
<ul>
<li ng-repeat="message in messages">
<button ng-click="send()">Send</button>
</li>
</ul>
$scope.send = function(){
//not working (message undefined)
alert($scope.message.text);
//working
alert($scope.messages[0].text);
};
Je ne comprends pas pourquoi:
alert($scope.message.text);
ne fonctionne pas. J'ai pensé que ng-repeat a été la création d'un nouveau champ d'application.
OriginalL'auteur poiuytrez | 2013-08-14
Vous devez vous connecter pour publier un commentaire.
Il est vrai que
ng-repeat
crée un nouveau champ d'application. Mais vous ne pouvez pas accéder à cette portée en faisant $portée à l'intérieur de votre contrôleur. Au lieu de cela, vous pouvez faire en tant que ci-dessous:Et dans votre JS:
Vous ne pouvez pas accéder à la portée de
ng-repeat
à l'intérieur du contrôleur en faisant $champ d'application. Au lieu de cela, vous pouvez passer de l'objet à partir de l'intérieur de ng-repeat pour le contrôleur 🙂OriginalL'auteur AlwaysALearner
Que le Message de l'accès local uniquement côté vue de côté(index.html). Dosn t contrôleur d'accès à côté. Mais le message est passé arguments qui est de l'envoyer(message).
OriginalL'auteur Kumar Ramalingam