2016-04-08 4 views
0

Sorry, ich weiß nicht, wie ich diese Frage stellen soll, aber der Code ist ziemlich geradlinig, denke ich. Ich möchte überprüfen, ob sich die Daten, die von der Datenbank zurückgegeben werden, geändert haben, und wenn dies der Fall ist, aktualisieren Sie den Bereich. Allerdings, wenn ich die es tun vergleichen kommt immer wieder, wie unterschiedlich und macht das Update:Versuche, Objekte zu vergleichen, um Änderungen zu ermitteln und den Bereich darauf zu aktualisieren

$scope.tickets = Ticket.tickets.query(); 

updateTickets = $interval(function(){ 
var deferred = $q.defer(); 
$scope.curTickets = $scope.tickets; 
deferred.resolve(Ticket.tickets.query()); 
var promise = deferred.promise; 

promise.then(function(newTickets){ 
    $scope.newTickets = newTickets; 
    if($scope.curTickets != $scope.newTickets){ 
    $scope.tickets = $scope.newTickets; 
    console.log('newtickets!'); 
    } else { 
    console.log('no newtickets'); 
    } 
}); 

},90000); 
+0

Wie sehe ich, was PHP-Datei zurückgibt Sie Kumpel? – Deadpool

Antwort

0

Wie in https://stackoverflow.com/a/201471/3878940 erwähnt, gibt es keine eindeutige Art und Weise die Gleichheit von zwei Objekten in JavaScript zu vergleichen. Also, müssen Sie nach einem alternativen Ansatz suchen, um rekursiv die Werte des Antwortobjekts zu vergleichen, indem Sie eine benutzerdefinierte Methode zu schreiben.

+0

Danke, ich fand die .equals funktioniert, aber ich musste ändern, wie ich das Objekt zurückgab und eine Funktion verwenden, um die zurückgegebenen Daten zu verarbeiten: 'Ticket.tickets.query ({}, Funktion (Daten) { $ scope.newTickets = data; ' usw. usw. –

Verwandte Themen