好吧,我有以下架构:
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正确刷新表格?