2017-02-20 5 views
0

J'ai une forme avec bootstrap4 et j'utilise ember-cp-validations pour le valider.ember/handlebars - Comment faire basculer la classe d'objets en fonction de boolean?

<div class="form-group {{if showNameError 'has-danger' ''}}"> 
    <label for="name" class="cols-sm-2 control-label">Full Name</label> 
    <div class="cols-sm-10"> 
     <div class="input-group"> 
     <span class="input-group-addon">{{fa-icon "user"}}</span> 
     {{input id="name" class="form-control" value=user.firstname placeholder="Enter your Name" focus-out=(action (mut showNameError) true)}} 
     </div> 
    </div> 

    {{#if showNameError}} 
     {{#if (v-get user "firstname" "isInvalid")}} 
     <div class="form-control-feedback container"> 
      <span>{{v-get user 'firstname' 'message'}}</span> 
     </div> 
     {{/if}} 
    {{/if}} 
    </div> 

En utilisant {{if showNameError 'has-danger' ''}}, je suis en mesure de mettre la classe à has-danger quand showNameError est vrai, mais quand elle est fausse, la classe reste là et le has-danger persiste.

  1. Lorsque la page se charge step 1

  2. Lorsque je force l'erreur step 2

  3. Après corriger l'erreur enter image description here

Comme vous pouvez le voir, après Je corrige l'erreur le has-danger reste de la classe. Ma question est, puis-je faire en sorte que la classe bascule selon que l'entrée est valide ou non.

Répondre

0

Modifié pour et il fonctionne comme il se doit.

<div class="form-group {{if showNameError (if (v-get user 'firstname' 'isInvalid') 'has-danger' 'has-success')}}"> 
<label for="name" class="cols-sm-2 control-label">Full Name</label> 
<div class="cols-sm-10"> 
    <div class="input-group"> 
    <span class="input-group-addon">{{fa-icon "user"}}</span> 
    {{input id="name" class="form-control" value=user.firstname placeholder="Enter your Name" focus-out=(action (mut showNameError) true)}} 
    </div> 
</div> 

{{#if showNameError}} 
    <div class="form-control-feedback container"> 
    <span>{{v-get user 'firstname' 'message'}}</span> 
    </div> 
{{/if}} 

+0

Je suis curieux de la syntaxe {{if ...}}. Je pensais que ça devait être {{#if ...}}. Est-ce une construction de braise ou de ember-cp-validation? – rasmeister

+0

Je l'ai tiré de la docs de braise. https://guides.emberjs.com/v2.11.0/templates/conditionals/ –