2016-08-01 63 views
0

我有一個多選框如下顯示/隱藏<tr>基於多<select>箱 - angularjs

<select multiple name="transActionGroup" id="transActionGroup" ng-multiple="true" ng-model="transActionGroup" title="Hold CTRL to select more than one transaction type."> 
    <option value="None">None</option> 
    <option value="Custom Group">Custom Group</option> 
    <option value="ACH Credits">ACH Credits</option> 
    <option value="ACH Debits">ACH Debits</option> 
</select> 

我想顯示<tr>,其默認是隱藏的,當用戶選擇「自定義組」作爲從上面的選擇框他一個選項

這是我<tr>

<tr id="custTransGrp" ng-if="transActionGroup === 'Custom Group'"> 
    <td class="label-cell"> * Custom Group(s) : </td> 
    <td> 
     <input type="text" ng-model="customTransActionGroup" name="customTransActionGroup" id="customTransActionGroup" /> 
    </td> 
</tr> 

我試過

ng-if="transActionGroup === 'Custom Group'" 

,但它沒有工作

+0

的http://的jsfiddle。 net/TahmidTanzim/N9Vqk/ –

+0

如果您選擇多於o ne選項,transActionGroup將是由所選選項組成的數組,例如, '['Custom Group','ACH Credits']'。 – Adwaenyth

+0

如何在ng-if屬性中比較此數組? – Nishant123

回答

1

其實你ngModelarray,所以你不能用===簡單的檢查。

您應該使用

Array.prototype.indexOf()

<tr id="custTransGrp" ng-if="transActionGroup && transActionGroup.indexOf('Custom Group') != -1"> 

甚至:

Array.prototype.includes()(檢查鏈接的瀏覽器的兼容性):

<tr id="custTransGrp" ng-if="transActionGroup.includes('Custom Group')">