Angularjs - ng-repeat - przeladowanie jednego z Div-ów

0

Hej,

mam prostą listę: imie i data. wyświetlam ją za pomocą angular-a i ng-repeat.

<div ng-repeat="s in data">
<div id="name">{{s.name}}</div>
<div id="date">{{s.date}}</div>
</div>

no i chciałbym teraz za pomocą javascript robić update tego czasu: za pomocą biblioteki "moment.js" wyświetlam nie "2014-05-05 15:00", a: "10 hours ago", albo: "48 days ago" etc.
No i jak mam np.: "3 minutes ago" i ktoś siedzi długo na stronie, no to ten czas powinien się automatycznie zmienić, ale nie chce na nowo wyświetlać na nowo całej tabeli, tylko interesuje mnie zmiana samego czasu... tego jednego konkretnego div-a. może mi ktoś powiedzieć jak mam się za to zabrać?

1

$interval(function(){
$scope.data[2].date = new date
tu robisz koda aktualizujący model a reszte ztobi anuglar
},10000)

0

No ale jak to robię?

Wiem jak zrobić żeby automatycznie np. co 10 sekund przeładował mi stronę... według tego co do tej pory przeczytałem nie muszę nic wysyłać jakby do "widoku" bo angular zrobi to za mnie ("zoorientuje" się że DOM się zmienił i trzeba na nowo wyświetlić) ale nie wiem jak to osiągnąć... mam w tej funkcji co podałeś przelecieć jeszcze raz całą tablicę i aktulizować ten czas który wyświetlam? Tak to mam zrobić?

Mam jeszcze jeden problem z którym nie wiem jak sobie poradzić. Mianowicie u mnie ta wartość datowa wygląda tak: 2014-05-05T1220 no i nie wiem jak to zrobić bo on tego nie jest w stanie przeczytać i zmienić.

EDIT:

 $interval(function () {
            if ($scope.dane != null) {

                $.each($scope.dane, function (index, item) {
                    var timeFormatted = new Date(item.when);
                    var minutes = timeFormatted.getMinutes();
                    var newTime = timeFormatted.setMinutes(minutes + 1 * 60000);
                    item.when = newTime;
                    console.log(newTime);
                });
            }
        }, 5000);

coś to nie chce działać :/ poprawnie nie wyświetla mi tych czasów. wyświetla np. 3 miresiące, a wcześniej pokazało 1 minute

EDIT:
działa tak:

 $interval(function () {
            if ($scope.dane != null) {
                $.each($scope.dane, function (index, item) {
                    var timeFormatted = new Date(item.when);
                    var minutes = timeFormatted.getMinutes();
                    var newTime = timeFormatted.setMinutes(minutes - 1);
                    item.when = newTime;
                });
            }
        }, 60000);

tylko nie wiem czemu trzeba wstawić tam minus zamiast plus...

1 użytkowników online, w tym zalogowanych: 0, gości: 1