2017-02-20 29 views
0

我有一個表格,樣式爲bootstrap4,我使用ember-cp-validations來驗證它。ember/handlebars - 如何根據布爾值切換對象類?

<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-dangershowNameError是真實的,但是當它是假的,階級仍然存在並持續has-danger

  1. 頁面加載 step 1

  2. 當我強迫錯誤 step 2

  3. 我修正這個錯誤 enter image description here

正如你可以看到後,後我修復了錯誤has-danger類仍然存在。我的問題是,我可以做到這一點,所以班級根據輸入是否有效切換。

回答

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

+0

我很好奇{{如果...}}語法。我認爲這必須是{{#if ...}}。這是一個燼或者ember-cp-validation結構嗎? – rasmeister

+0

我把它從燼文件中提取出來。 https://guides.emberjs.com/v2.11.0/templates/conditionals/ –