Cómo mostrar algo cuando el filtrado es lento usando AngularJS
En angular, tengo una tabla y un cuadro de búsqueda donde el usuario puede escribir y angular buscará entre los datos y mostrará una tabla. El problema es que tengo suficientes datos para que el filtrado se pueda ralentizar, en este caso, me gustaría mostrar una ruleta:
Muestra similar a mi html:
<body ng-controller="MainCtrl">
Search: <input ng-model="searchText">
<table id="searchTextResults">
<tr><th>Name</th><th>Phone</th><th>Address</th><th>City</th><th>Zip</th><th>Country</th></tr>
<tr ng-repeat="friend in friends | filter:searchText">
<td>{{friend.name}}</td>
<td>{{friend.phone}}</td>
<td>{{friend.address}}</td>
<td>{{friend.city}}</td>
<td>{{friend.zip}}</td>
<td>{{friend.country}}</td>
</tr>
</table>
<div class='myspinner' > <!-- display only if filtering is occurring -->
La pregunta es, ¿cómo puedo mostrar una ruleta cada vez que se produce un filtrado?
CSS para spinner div:
.myspinner {
position: absolute;
left: 45%;
top: 45%;
height:50px;
width:50px;
margin:0px auto;
position: absolute;
-webkit-animation: rotation .6s infinite linear;
-moz-animation: rotation .6s infinite linear;
-o-animation: rotation .6s infinite linear;
animation: rotation .6s infinite linear;
border-left:6px solid rgba(0,170,240,.25);
border-left: 6px solid rgba(0,170,240,.25);
border-right: 6px solid rgba(0,170,240,.25);
border-bottom: 6px solid rgba(0,170,240,.25);
border-top: 6px solid rgba(0,170,240,.6);
border-radius:100%;
}
enlace a plunkr:http://plnkr.co/edit/NcbPPcxL1rk0ZBKpbqZG?p=preview