Показать / Скрыть <tr> на основе поля MULTIPLE <select> - angularjs

0

У меня есть несколько блоков выбора следующим образом

<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
    jsfiddle.net/TahmidTanzim/N9Vqk
  • 0
    Если вы выберете более одной опции, transActionGroup будет массивом, состоящим из выбранных опций, например ['Custom Group', 'ACH Credits'] .
Показать ещё 2 комментария
Теги:

1 ответ

1

На самом деле ваш ngModel представляет собой array, поэтому вы не можете просто проверить с помощью ===.

Вы должны использовать

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')">

Ещё вопросы

Сообщество Overcoder
Наверх
Меню