如何更新角度视图只有数据库有变化

时间:2016-04-13 05:03:40

标签: php angularjs database view angularjs-ng-repeat

我需要更新我的ng-repeat只有当我在我的数据库上搜索表时发生了变化。我现在正以每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毫秒更新一次我的视图就像你在我的控制器上看到的那样我使用$ interval。我想要做的是使用$ interval而不是在创建新游戏时使用在ng-repeat上添加新<TD>的内容,如果内容已更改,则删除<TD>,如下所示:

if(桌面游戏新游戏){在信息的html上添加新的td}

if(gamestatus在桌上游戏中更改){从html中删除该TD}

1 个答案:

答案 0 :(得分:0)

只要您正确操作游戏集合,视图就会相应更新。