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 :

Comment ne pas afficher un champs vide dans un template


Sujet :

AngularJS

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    378
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 378
    Points : 94
    Points
    94
    Par défaut Comment ne pas afficher un champs vide dans un template
    Bonjour,

    dans mon template j'ai un champ {{result.instructions}} qui peut être vide
    dans un ng-repeat voici ce que j'ai pour ce champs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <p><span class="textColor">Instructions</span> : {{result.instructions}}</p>
    Comment ne pas afficher cette ligne si result.instructions est vide.

    Merci

  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
    Salut!

    Si tu boucle sur le tableau result.instructions :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <div ng-repeat="instruction in result.instructions">
    <span ng-show="instruction">{{instruction}}</span>
    </div>
    avec un ng-show, la balise n'est seulement pas affichée. C'est l'équivalent d'un display:none en css.
    Si tu veux supprimer la balise du DOM, il faut utiliser ng-if.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <div ng-repeat="instruction in result.instructions">
    <span ng-if="instruction">{{instruction}}</span>
    </div>
    Dans le cas ou tu teste la taille du tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <div ng-if="result.instructions.length > 0">
    {{result.instructions}}</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 !

  3. #3
    Expert éminent sénior
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 413
    Points : 19 609
    Points
    19 609
    Par défaut
    Citation Envoyé par altair8080 Voir le message
    Bonjour,

    dans mon template j'ai un champ {{result.instructions}} qui peut être vide
    dans un ng-repeat voici ce que j'ai pour ce champs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <p><span class="textColor">Instructions</span> : {{result.instructions}}</p>
    Comment ne pas afficher cette ligne si result.instructions est vide.

    Merci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <p data-ng-if="result.instructions"><span class="textColor">Instructions</span> : {{result.instructions}}</p>
    Tout simplement.

    Citation Envoyé par altair8080
    Si tu veux supprimer la balise du DOM, il faut utiliser ng-if.
    C'est mal formulé. La balise n'est pas supprimée du DOM. La balise n'est pas dans le DOM si la condition du if n'est pas remplie. C'est pas pareil !
    Un problème avec Git ? Essayez la FAQ, sinon posez votre question sur le forum.



    "Toute personne croyant qu'une croissance exponentielle peut durer indéfiniment dans un monde fini est soit un fou, soit un économiste."
    Kenneth E. Boulding

    "Les richesses naturelles sont inépuisables, car, sans cela, nous ne les obtiendrions pas gratuitement. Ne pouvant être ni multipliées ni épuisées, elles ne sont pas l’objet des sciences économiques."
    Jean-Baptiste Say, Traité d'économie politique, 1803.

    "/home/earth is 102% full ... please delete anyone you can."
    Inconnu

  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
    Citation Envoyé par Marco46 Voir le message
    Tout simplement.
    Oui, mais j'ai donné plusieurs exemples, à lui de faire son choix et de modifier le code...
    Par ailleurs, tester la taille du tableau ne revient pas au même que de tester s'il est ou pas undefined...

    Avec ton code, on teste si le tableau est défini et non qu'il contient des éléments... Par contre, si tu itère sur les éléments d'un tableau, tu peux tester la nulité d'un élément par exemple.


    Citation Envoyé par Marco46 Voir le message
    C'est mal formulé. La balise n'est pas supprimée du DOM. La balise n'est pas dans le DOM si la condition du if n'est pas remplie. C'est pas pareil !
    Euh... ceci est tiré de la doc... :

    Citation Envoyé par doc AngularJS
    The ngIf directive removes or recreates a portion of the DOM tree based on an {expression}. If the expression assigned to ngIf evaluates to a false value then the element is removed from the DOM, otherwise a clone of the element is reinserted into the DOM.
    Alors, "supprimé", "retiré", "remplacé"... c'est a peu près pareil. Si la condition n'est pas remplie, oui, la balise es absente. Mais si le modèle change entre temps, hop ! la balise apparaît et ainsi de suite. Alors excuse moi mais c'est bien supprimé du DOM.
    le lien : doc AngularJS
    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 !

Discussions similaires

  1. [XL-2007] ne pas afficher des points 'vides' dans un graphique
    Par boboss123 dans le forum Excel
    Réponses: 6
    Dernier message: 24/07/2012, 16h08
  2. Réponses: 18
    Dernier message: 09/12/2008, 10h40
  3. Réponses: 5
    Dernier message: 02/08/2004, 17h11
  4. Ne pas afficher un champs qui est vide dans ma BD
    Par yoda_style dans le forum ASP
    Réponses: 3
    Dernier message: 27/04/2004, 11h40

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