aman
aman

Reputation: 6262

AngularJs: Show/Hide table column based on dropdown in first column

Using angularjs

I have a table which column one I am binding it to a an array.

Second column is a dropdown.

I want to have other 5-6 columns (text and dropdown) which I want to show/hide based on the value of second column dropdown.

I tried the below code:

  <table class="table table-bordered">
    <thead>
    <tr>
        <th>Name</th>
        <th>Value</th>
        <th></th>
    </tr>
    </thead>
    <tbody>
    <tr ng-repeat="item in items">
       <td >{{item.name}}</td>
       <td >  
          <select name="utype" class="form-control input-medium"  ng-model="utype">
                  <option value="">---Please select---</option>
                  <option ng-repeat="type in types" >{{type.text}}</option>
          </select></td>
      <td><span ng-hide="utype =='Type1' || utype!=undefined" >{{item.value}}</span></td>
      <td><button class="btn btn-small" ng-click="edit(item)">Edit</button></td>
    </tr>
    </tbody>
  </table>

ng-hide="utype =='Type1' || utype!=undefined"

But this only works the first time. After hiding it does not work.

Could anyone point what I need to do to make it work:

Upvotes: 1

Views: 577

Answers (1)

BradP
BradP

Reputation: 77

utype!=undefined is always true after you set ng-model="utype"> the first time. Take out utype!=undefined and try it.

<td><span ng-hide="utype =='Type1' >{{item.value}}</span></td>

Also, imo, you should use === rather than '=='. see this SO answer for details.
e.g.. ng-hide="utype ==='Type1'

Upvotes: 1

Related Questions