我知道这里已经被问过了,但是我仍然被这个问题所困扰,在我向数据库添加新数据后结果没有更新。
我有一个控制器用于添加和检索数据
.controller('GameCtrl', ['$scope', function(scope) {
scope.createGame = function() {
Api.createGame(postData).then(function(result) {
console.log(result);
scope.$broadcast("event: list updated", true);
}, function(result) {
console.log(result.data.message);
scope.showError = true;
scope.data = 'Warning! '+result.data.message;
});
};
var quizmaster = {};
quizmaster.gameList = function() {
Api.getGameList().then(function(result) {
console.log(result.data);
scope.games = [];
scope.games = result.data;
}, function(result) {
console.log(result);
});
};
scope.$on("event: list updated", function(value) {
console.log('event update');
quizmaster.gameList();
});
}]);
广播事件工作正常,添加后调用 quizmaster.gameList() 函数加载游戏列表。控制台中显示的数据未更新,新创建的数据尚不存在。但是当我查看我的数据库时,新添加的数据已经存储了。它只需要刷新页面即可更新列表。我们如何在不刷新页面的情况下将添加的数据反映在视图中?
谢谢您的帮助!
更新: Api.getGameList() 是一项服务。
.factory('Api', function($http) {
return {
getGameList: function(params) {
return $http({
method : 'GET',
url : api + 'games/list',
params : params,
headers : {'X-GameApp-Token' : credential.token}
});
}
}
});