Мое приложение имеет два контроллера, один выбирает данные из базы данных, а другой контроллер использует те же данные для рисования диаграммы.
Я хотел бы поделиться результатами между двумя контроллерами, чтобы не запускать запрос дважды. Я создал службу для этой цели, но второй контроллер не получает объект набора результатов. Если я сделаю console.log, я получу и пуст объект. Если я подожду 5 секунд и сделаю console.log, я получаю объект результатов. Я думаю, что когда второй контроллер срабатывает, результаты, похоже, не готовы.
Как правильно передать объекты результатов между двумя контроллерами?
Моя служба
app.service('chartData', function(){
var qryResult = {};
var addResult = function(newResult) {
qryResult = newResult;
};
var getResult = function() {
return qryResult;
};
return {
addResult: addResult,
getResult: getResult
};
});
Первый контроллер, чтобы получить результаты
app.controller('resultsController', function($http, $scope, chartData){
$http.get('getresults.php').
success(function(data, status, headers, config) {
$scope.resultsList = data;
chartData.addResult(data);
console.log(chartData.getResult());
}).
error(function(data, status, headers, config) {
});
});
Второй контроллер нарисовать диаграмму, которая в настоящее время получает пустой объект
app.controller('chrtCtrl', function($scope, chartData){
console.log(chartData.getResult());
});
"Я думаю, что, когда второй контроллер пожары, результаты, похоже, не готовы." - Это точно. –