Mam do stworzenia tabelę, gdzie kolumny to są daty, natomiast, wiersze to pracownicy.
Natomiast w komórkach mają się pokazywać pewne wydarzenia.
Te wydarzenia są to obiekty, które mają w sobie min. id pracownika, oraz datę.
W tej chwili robię to tak, że przechodzę dla każdego pracownika, każdy dzień, i w każdym dniu porównuję datę i id wydarzenia z tablicy tych wydarzeń, jeśli się zgadza to wtedy dzięki dyrektywie ng-if wsadzam diva do komórki. Wszystko ładnie działa, ale trwa to ze dwie - trzy sekundy przy raptem 8 pracownikach, 6 dniach i 30 wydarzeniach.
Czy da się to zrobić jakoś szybciej?
tabela:
<table class="calendar_table">
<tr>
<th>Pracownik:</th>
<td ng-repeat="day in days"> {{ day.fullDate }} </td>
</tr>
<tr ng-repeat="person in persons">
<th>{{person.Name}}</th>
<td ng-repeat="day in days">
<div ng-repeat="alloc in AllocationsList" ng-if="showEvent(alloc,day,person)">
{{ alloc.info }}
</div>
</td>
</tr>
</table>
metoda sprawdzająca czy stworzyć diva:
$scope.showEvent = function (alloc, day, person) {
if (alloc.DateTime.toString() === day.date.toString()) {
if (alloc.UserId === person.Id) {
return true;
}
}
return false;
};