2016-06-15 18 views
2

HI Ich baue eine grundlegende Social-Media-Website mit ionischen und bin für jeden Beitrag die gleiche Anzahl zählt. Beim Laden der Seite zeige ich erfolgreich die gleiche Anzahl, die für jeden Datensatz in der Datenbank ist.ionische/eckige Aktualisierung wie Zählung mit Intervall?

Problem ist nach dem Laden der Seite und ein anderer Benutzer mag den Datensatz Ich möchte die gleiche Anzahl automatisch für alle Benutzer aktualisieren. Ich fing an, mit $interval herum zu spielen, das funktioniert, aber die ganze $scope ändert sich, sieht fast wie eine Seitenaktualisierung aus. Wie kann ich nur die $scope.cards.Post_Likes_Count aktualisieren, ohne die gesamte $scope.cards zu aktualisieren?

Hier ist mein Markup:

<div class="actions-brief"> 
     <a href="#" class="subdued" id="{{card.PostID}}">{{card.Post_Likes_Count}} Likes</a> 
     <a ng-controller="CommentsCtrl" ng-click="showComments(card)" class="subdued">{{card.comments}} Comments</a> 
     <!--<a href="#" class="subdued">{{card.shares}} Shares</a>--> 
    </div> 

Idealerweise würde ich möchte nur die $scope.cards.Post_Likes_Count aktualisieren. Ich bin mir nicht sicher, wie man alles synchron hält, wenn ich $scope.cards nicht verwende. Ich zeige 10 Beiträge pro Seite, aber während der Benutzer scrollt, nehme ich 10 weitere Datensätze.

Alle Vorschläge oder Tipps würden sehr geschätzt werden.

Antwort

0

Das gesamte $ scope sollte sich nicht ändern ... Nach den besten Praktiken sollten Sie den $http Anruf im Werk oder Service machen. Können sagen, Sie ein http Anruf zu Ihrem Server die wie getan, indem Ihr einen Benutzer ... Sie sollten sollte activate() Funktion ..

Activate-Funktion aufrufen aktualisieren gemacht eine benutzerdefinierte Funktion sein, die eine Anforderung an den Server Beim Laden der Seite werden alle Daten aus der Datenbank abgerufen und die Variable $ scope.yourData mit den neuesten Daten erneut geladen.

Darüber hinaus sollten Sie die gleiche activate() Funktion von Ihrem Controller mit $interval aufrufen. Dies würde Ihren Code strukturierter und korrekter machen.

Und darüber hinaus sollten Sie Daten in Ihrem $ scope.YOURDATA Variable in Ihrer activate() Funktion schieben, anstatt sie jedes Mal zuweisen ...