2016-04-13 5 views
1

Ich muss meine ng-Wiederholung nur aktualisieren, wenn es eine Änderung in der Tabelle, die ich in meiner Datenbank suchen. Ich tue dies derzeit mit $ Intervall auf Winkel alle 700ms, wie Sie sehen können:nur die Winkelansicht zu aktualisieren gibt es eine Änderung in der Datenbank

var app = angular.module("games", []); 

app.factory('app', ['$http', function($http, $interval) { 

var obj={}; 
obj.getGames = function() { 
    return $http.get('ajax/gameread.php'); 
} 
return obj; 

}]); 

app.controller("gamesCtrl", function($scope, $interval, app) { 
    $interval(callInterval, 700); 
    function callInterval(){ 
    app.getGames().then(function(data) { 
    $scope.games = data.data; 
    }); 
    } 
}); 

Und die html:

<div class="col-xs-8"> 
      <table ng-app="games" ng-controller="gamesCtrl" class="gametable"> 
      <tbody> 
      <tr> 

       <td id="box-title-games"><div class="left leftbox"><p class="sbold">Active Games</p></div> <a href="#"><div id="addgame" class="rightbox rightboxchar right"><p><i class=" fa fa-plus"></i> Add Game</p></a></div></td> 
      </tr> 
       <tr class="ops" ng-repeat="game in games"> 
       <td id="gamesli">{{game.game_p1}} {{game.gamebet}} <span class="last"><a href="gameplay/{{game.game_id}}" target="_blank" class="enter"><span class="letter-format-table">Enter</span></a></span></td> 
       </tr> 
       </tbody> 
       </table> 
     </div> 

Und die Ausgabe von Ajax/gameread.php ist ein json mit jeder Tabelle Infos, die ich brauche.

Aber was dies tut, aktualisiert meine Ansicht alle 700ms, wie Sie auf meinem Controller sehen können Ich benutze $ Intervall. Was ich tun möchte ist, anstatt $ interval verwenden etwas, das eine neue <TD> auf der ng-Wiederholung, wenn ein neues Spiel erstellt wurde, oder löschen Sie die <TD>, wenn dieser Inhalt hat sich geändert, etwas wie folgt:

if (new Spiel auf Tischspiele) {eine neue td auf den hTML-Code mit den Informationen hinzufügen}

if (gamestatus auf Tischspiele geändert) {dass TD aus html löschen}

Antwort

0

Solange Sie die Spielesammlung richtig manipulieren die Die Ansicht wird entsprechend aktualisiert.

+0

Ja, es wird aber auch, wenn die Sammlung seiner hält Ursache seines Aussehens nicht manipuliert wird die Aktualisierung der vorhandenen TD, und das ist annying wie sie blinken und Sie können ihren Text nicht auswählen, da all 700ms (wenn es aktualisiert wieder) Ihre Auswahl wird verschwinden –

Verwandte Themen