У меня возникают проблемы с заполнением 2 графиков высоких диаграмм на одной странице с использованием фабричной или конечной точки обслуживания для автоматического захвата моих данных. Ive настраивает директиву, которая работает нормально, я вижу, что связанный элемент и 2 диаграммы появляются, проблема в том, что фабрика/служба перезаписывают свои предыдущие данные новым набором данных последнего вызываемого api. Таким образом, я могу видеть 2 диаграммы, но только 1 был правильно напечатан, другой пуст, потому что он получает пустые данные (или идентичные данные). У меня есть отдельные контроллеры, я не уверен, почему эта фабрика/служба истекает кровью от одного к другому.данные фабрики/службы заменяются следующим вызовом конечной точки API
Контроллер:
.controller('getSalesByDay', ['$scope', 'liveStats', function($scope, liveStats){
var promise = liveStats.getLiveStats({api_path: 'salebydayorhour'});
promise.then(function (saledata){
$scope.saleData = saledata.data.count
$scope.axisInfo = {
categories: saledata.data.date
}
})
}])
.controller('getForeCastByDay', ['$scope', 'getForeCastByDay', function($scope, getForeCastByDay) {
$scope.getForecastByDay = getForecastByDay.query({api_path: 'getforecastdata'})
.$promise.then(function (forecast) {
$scope.forecastData = forecast.count;
$scope.axisInfo = {
categories: forecast.date
}
});
}])
Factory/Услуги:
.service('liveStats', ['$http', '$q', function($http, $q){
var deferred = $q.defer();
$http.get(API_PATH+'live_stats/salesbyday', {api_path: '@api_path'})
.then(function (data){
deferred.resolve(data);
});
this.getLiveStats = function() {
return deferred.promise;
}
}])
.factory('getLiveStats', ['$resource', function($resource) {
return $resource(API_PATH+'live_stats/:api_path', {api_path: '@api_path'},
{
query: {
isArray: false
}
}
);
}])
Шаблон:
<div ng-controller="getSalesByDay">
<div ng-if="salesData">
<datachart data="salesData" axis="axisInfo"></datachart>
</div>
</div>
<div ng-controller="getForecastByDay">
<div ng-if="forecastData">
<datachart "data="forecastData" axis="axisInfo"></datachart>
</div>
</div>
Ive пытался как пропусканием обещание и перенести методы, ив .then пытался, я не могу похоже, работают над тем, как ударить по определенной конечной точке (например, как я получил ее на своем заводе, поскольку она настроена с помощью api _path) и запросить 2 json blobs данных для заполнения 2 независимых графиков на одной странице.
Любая помощь была бы фантастической, застрявшей на этом какое-то время, искала далеко и широко, но я думаю, что им не хватает чего-то ключа.
Примечание: Я изменил имена областей/контроллеров, так как это частный проект, который я не хочу, чтобы имена были выпущены (если кто-то заметил ошибку правописания или переменную, которая не совпадает, весь код работает отлично на этой стороне).
Вы также можете удалить инъекции '$ q', так как это не имеет значения. – Makoto
Конечные точки достигаются правильно, передавая в конфиг функции, но im все равно получает только одну возвращаемую данные конечной точки, а не одновременно, чтобы разделить контроллеры с использованием одной и той же службы. Конечная точка прогноза перезаписывает конечную точку продаж. –
все еще havent решил эту проблему, был бы очень признателен за некоторую дополнительную помощь, @georgeawg был полезен, но я не получал данные по назначению. –