IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AngularJS Discussion :

ng-repeat et ng-class


Sujet :

AngularJS

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2012
    Messages : 28
    Points : 18
    Points
    18
    Par défaut ng-repeat et ng-class
    Bonjour,

    J'aimerais pouvoir changer le nom des variables dans ng-class mais cela provoque une erreur.
    Pour que cela soit plus clair, voici le code :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    <div ng:repeat="x in [] | range:1:circuit">
    <!--ici la boucle !-->
    	<div class="row">
    		<div class="col-md-2">
    			<div class="form-group" ng-class="{'has-error':Form.departure.$dirty && Form.departure.$invalid, 'has-success':Form.departure.$valid}">
    				<label translate="travel.step2.INP6">{{ mainTitle }}<span class="symbol required"></span></label>
     
    				<input type="text" class="form-control error-input" name="departure{{x}}" ng-model="myModel.departure" style="min-width:42px;" placeholder="D&eacute;part.." ng-required="currentStep == 2">
    				<span class="error text-small block" ng-if="Form.departure.$dirty && Form.departure.$invalid" translate="travel.step2.ERRORDEP">{{ mainTitle }}</span>
    				<span class="success text-small" ng-if="Form.departure.$valid"></span>
    			</div>
    		</div>

    Dans mon input, je fais ceci : name="departure{{x}}" ce qui me permet d’incrémenter mes lignes, par contre dans ng-class, si je fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ng-class="{'has-error':Form.departure{{x}}.$dirty && Form.departure{{x}}.$invalid, 'has-success':Form.departure{{x}}.$valid}">
    Cela provoque une erreur.
    Ma question : comment puis je incrémenter ng-class pour qu'il garde toujours le même nom que le name de l'input ?
    Merci d'avance.

  2. #2
    Membre expérimenté Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Points : 1 337
    Points
    1 337
    Par défaut
    Bonjour,

    Si tu utilise ng-class et les deux accolades, cela ne fonctionnera pas...
    il faut soit utiliser ng-... soit les accolades.
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2012
    Messages : 28
    Points : 18
    Points
    18
    Par défaut
    bonjour Slim,

    oui je m'en doutais, mais il y a t'il un moyen de changer les champs dans un ng-class, car comme mes champs change dynamiquement le ng-class dans la boucle n'est plus adapté aux input.
    ou suis je obligé de passer par du jquery ?

  4. #4
    Membre expérimenté Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Points : 1 337
    Points
    1 337
    Par défaut
    Soit tu utilise les $index, soit tu crée un sous-formulaire comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <div ng-repeat="social in formData.socials">
          <ng-form name="urlForm">
                <input type="url" name="socialUrl" ng-model="social.url">
                <span class="alert error" ng-show="urlForm.socialUrl.$error.url">URL error</span>
          </ng-form>
      </div>
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2012
    Messages : 28
    Points : 18
    Points
    18
    Par défaut
    Je viens de regarder les sous formulaires.
    Mais j'ai l'impression que c'est plus pour changer dynamiquement les noms des inputs, mais moi c'est plutôt ce qui ce passe dans ng-class que j'aimerai modifier.
    pour $index c'est bien mais c'est pareil, comment le transmettre dans la ng-class ? :

    ng-class="{'has-error':Form.departure(increment).$dirty && Form.departure(increment).$invalid, 'has-success':Form.departure(increment).$valid}">

    Merci pour ton aide et ta patience

  6. #6
    Membre expérimenté Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Points : 1 337
    Points
    1 337
    Par défaut
    Citation Envoyé par theflayer Voir le message
    Je viens de regarder les sous formulaires.
    Mais j'ai l'impression que c'est plus pour changer dynamiquement les noms des inputs, mais moi c'est plutôt ce qui ce passe dans ng-class que j'aimerai modifier.
    Et bien justement. Supprime le {{x}} de l'input et du coup la variable increment du ng-class.
    Est-ce que tu pourrais mettre ton code sur un jsfiddle, et dire quelles erreurs tu obtiens ?
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2012
    Messages : 28
    Points : 18
    Points
    18
    Par défaut
    Salut Slim,

    désolé de la réponse (très) tardive, j'ai été beaucoup pris.
    Sur jsfiddle c'est pas évident de tout mettre dessus, j'ai essayé quand même, mais mon contrôleur ne fonctionne plus

    Si je supprime les {{x}} ça fonctionnera correctement, ça m’affichera correctement toutes les ligne que je veux, mais pour l'insertion en bdd je pourrais pas les différencier car elle auront toutes le même noms.
    Après j'ai palier en attendant en géant le retour d'erreur en jquery mais je trouve ça dommage.

    Encore une fois merci pour ta patience.

  8. #8
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2014
    Messages : 162
    Points : 73
    Points
    73
    Par défaut
    Salut,

    remarque peut-être stupide, mais j’ai l’impression que tu écris ton code AngularJS dans ton HTML. Je pense qu’il serait plus simple de le mettre dans un nouveau fichier. Au moins pour voir plus facilement les erreurs.

Discussions similaires

  1. Classe pour la création d'un graphe xy
    Par Bob dans le forum MFC
    Réponses: 24
    Dernier message: 03/12/2009, 17h20
  2. Réponses: 31
    Dernier message: 30/03/2006, 16h57
  3. Élaboration de classe
    Par il_a_ri dans le forum Langages de programmation
    Réponses: 6
    Dernier message: 16/01/2003, 14h22
  4. Variable d'une Classe Ancêtre
    Par Génie dans le forum Langage
    Réponses: 3
    Dernier message: 18/09/2002, 19h24
  5. Sortir un typedef d'une classe
    Par Theophil dans le forum C++Builder
    Réponses: 13
    Dernier message: 03/07/2002, 17h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo