2017-03-20 1 views
2

Problème lié à l'affichage de l'élément booléen. Si je suis en train de mettre en élément show hide en html, il fonctionne comme:Afficher et masquer angulaire 2

<p class="post-more-text" (click)="model.isTextVisible = !model.isTextVisible;">{{model.moreOrLessValue}}</p> 

Si je mets une fonction dans le composant, l'élément ne se cache pas

<p *ngIf="isTextVisible"> 
    {{model?.morePostText}} 
</p> 

<p class="post-more-text" (click)="onMoreInfoClick(model)">{{model.moreOrLessValue}}</p> 

et composants:

onMoreInfoClick(model) { 
    model.isTextVisible = !model.isTextVisible; 
} 

Qu'est-ce que je fais mal?

Répondre

3

L'utilisation de l'attribut [hidden] n'est pas recommandée pour Angular2. Meilleure utilisation ngIf condition. de cette façon:

<p *ngIf="model.isTextVisible"> 
    {{model?.morePostText}} 
</p> 

Plus vous pouvez lire here


modifié: Additionnellement, je pense que vous oubliez de votre parent attribut isTextVisible. Devrait-il ressembler à: *ngIf="model.isTextVisible" ??

+0

Désolé, j'ai oublié de passer à ngIf. J'ai essayé avec caché avec l'espoir que cela fonctionnera :) – Vitaliy

+1

il aidé? Je suis curieux si le problème était [caché] attr ou que vous oubliez "modèle". avant isTextVisible –

+1

oui ça a aidé, la solution était d'oublier d'ajouter le modèle ...) – Vitaliy