Ne pouvez pas utiliser ngChange dans ngRepeat - Angularjs
Je suis en utilisant ngRepeat pour générer un jeu de champs de cases à cocher.
Je faire comme suit:
<fieldset id="country_select" ng-controller="CountriesListController">
<span ng-repeat="country in countries">
<label>
<input type="checkbox" id="country.name" ng-change="locationAdd(country.name)">
{{country.name}}
</label><br/>
</span>
</fieldset>
Cependant, pour certains raison de l'ajout de la ngChange directive à ma case causes de mon ng-repeat sortie pour afficher une case à cocher comme suit:
case {{pays.name}}
Quand je change de ngChange à ngClick mon ngRepeat boucle fonctionne.
Donc ma question est: Pourquoi ne ngChange pas travailler avec ngRepeat mais ngClick n'lorsqu'il est inséré dans ma case d'entrée
J'obtiens l'erreur suivante dans ma console:
Error: [$compile:ctreq] Controller 'ngModel', required by directive 'ngChange', can't be found!
http://errors.angularjs.org/1.3.7/$compile/ctreq?p0=ngModel&p1=ngChange
at REGEX_STRING_REGEXP (http://localhost:9000/bower_components/angular/angular.js:63:12)
at getControllers (http://localhost:9000/bower_components/angular/angular.js:7535:19)
at nodeLinkFn (http://localhost:9000/bower_components/angular/angular.js:7724:33)
at compositeLinkFn (http://localhost:9000/bower_components/angular/angular.js:7073:13)
at compositeLinkFn (http://localhost:9000/bower_components/angular/angular.js:7076:13)
at compositeLinkFn (http://localhost:9000/bower_components/angular/angular.js:7076:13)
at publicLinkFn (http://localhost:9000/bower_components/angular/angular.js:6952:30)
at $get.boundTranscludeFn (http://localhost:9000/bower_components/angular/angular.js:7091:16)
at controllersBoundTransclude (http://localhost:9000/bower_components/angular/angular.js:7747:18)
at ngRepeatAction (http://localhost:9000/bower_components/angular/angular.js:24524:15)angular.js:11592 (anonymous function)angular.js:8542 $getangular.js:14241 $get.Scope.$digestangular.js:14486 $get.Scope.$applyangular.js:9644 doneangular.js:9834 completeRequestangular.js:9775 requestLoaded
Vérifier le navigateur de la console d'erreurs.
Veuillez coller le code entier dans jsfiddle
J'ai ajouté à ma console d'erreur pour vous les gars
Veuillez coller le code entier dans jsfiddle
J'ai ajouté à ma console d'erreur pour vous les gars
OriginalL'auteur ocajian | 2015-01-15
Vous devez vous connecter pour publier un commentaire.
ng-changement nécessitera
ng-model
. Il vous manque ng-model sur la case à cocherCochez cette plunker par exemple.
Tout ce que je vois dans Angulaire de la Documentation: Note, cette directive exige ngModel d'être présent.
Il est nécessaire, car intérieurement il est en train de vérifier si une nouvelle valeur est engagé pour les ng-model. Si c'est alors seulement elle permettra d'évaluer ng-changement.Aussi, ng-model est nécessaire pour maintenir le contrôle de l'état comme sale, invalide, etc., ce qui sera utile au moment de formulaire de soumettre ou ng-model est nécessaire, si vous souhaitez accéder à la valeur des cases sélectionnées dans l'étendue.
Oh que prend tout son sens. Je vous remercie pour m'apprendre un peu plus sur angulaire.
OriginalL'auteur Shripal Soni
Faire attention à ce que vous avez l'intention d'utiliser
ngChange
. Dans mon cas, j'ai été un peu trop rapide avec les doigts et les yeux, et n'ai pas l'attraper Intellisense choixdata-ng-change
quand j'ai l'intention d'utiliserdata-ng-click
Je suis sûr que je n'ai vu qu'une seule entrée (data-ng-click) après avoir tapé
data-ng-c
; mais peut-être Intellisense est un peu lent à afficher les autres options et ramassa la première par ordre alphabétique, quand j'appuie sur la touche [Tab]...OriginalL'auteur Zarepheth