ここで質問されたことは知っていますが、データベースに新しいデータを追加した後、結果が更新されないというこの問題でまだブロックされています。
データを追加および取得するためのコントローラーが 1 つあります。
.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}
});
}
}
});