使用来自服务器的数据刷新ng-repeat

时间:2014-02-06 09:46:30

标签: javascript php arrays angularjs

好吧,我有以下架构:

Laravel 4支持REST api AngularJS动力前端

我使用ng-repeat来遍历一个对象数组。我还有一个表单,其中一个填充一定数量的数据,Laravel填写其余的(某些时间戳)。因为直到服务器端才定义新数据的最终形式,所以我必须将其返回并将其添加到范围内的对象数组中。

这是我的控制器:

app.controller('GameCtrl', function ($scope, RestService) {
    $scope.games = [];
    $scope.newGame = {secretcode: ''};
    //debug
    window.scope = $scope;

    $scope.getGames = function () {
        RestService.get('games')
            .success(function (response) {
                $scope.games = response.data;
            })
            .error(function (response, statuscode) {
                $scope.flash = 'An error ' + statuscode + ' occurred.';
            });
    };

    $scope.createNewGame = function () {
        RestService.post('games', $scope.newGame)
        .success(function (response) {
            $scope.games.push(response.game);
        })
        .error(function (response) {
            console.log(response);
        });
    };

    $scope.getGames();
});

现在在页面重新加载期间检索数据不是问题。然而,我遇到的障碍是在创建新的游戏数据时。基本上这个过程是这样的:

用户填写表单并提交

`-> angularjs sends the data to server 

-> laravel 4 adds some new data (timestamps mostly) and creates a new database entry

-> laravel 4 returns the newly created data back to angularjs 

-> angularjs adds the new entry into the array of objects 

-> angularjs refreshes the table generated from the array since there is a new entry`

现在我尝试使用$scope.$apply(),但这导致了错误。

那么我该怎样做才能让ng-repeat正确刷新表格?

0 个答案:

没有答案