ember / handlebars - 如何根据布尔值切换对象类?

时间:2017-02-20 03:58:41

标签: javascript ember.js handlebars.js ember-cp-validations

我的表单采用bootstrap4设置,并使用ember-cp-validations进行验证。

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

使用{{if showNameError 'has-danger' ''}},我可以在has-danger为真时将类设置为showNameError,但是当它为false时,类仍保留在那里且has-danger仍然存在。

  1. 页面加载时 step 1

  2. 当我强制错误时 step 2

  3. 修复错误后 enter image description here

  4. 正如您所看到的,在我修复错误后,has-danger类仍然存在。我的问题是,我可以根据输入是否有效来切换类。

1 个答案:

答案 0 :(得分:0)

已更改为并且正在按预期执行。

<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}}