как обновить угловой вид только есть изменения в базе данных

Мне нужно обновить мой ng-repeat только тогда, когда в таблице, которую я ищу, есть изменения в моей базе данных. В настоящее время я делаю это с $ interval на angular каждые 700 мс, как вы можете видеть:

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;
});
}
});

А то 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>

И вывод из ajax / gameread.php — это json с информацией о каждой таблице, которая мне нужна.

Но то, что это делает, обновляет мой взгляд каждые 700 мс, как вы можете видеть на моем контроллере, я использую $ интервал. То, что я хочу сделать, это вместо того, чтобы использовать $ интервал, использовать что-то, что добавляет новый <TD> на нг-повторить, если была создана новая игра, или удалить <TD> если этот контент изменился, примерно так:

if (новая игра в настольные игры) {добавить новый HTML в HTML с информацией}

if (gamestatus изменен в настольных играх) {удалить TD из html}

1

Решение

Пока вы правильно управляете коллекцией игр, представление будет обновляться соответствующим образом.

0

Другие решения

Других решений пока нет …