Здравствуйте!
Изучаю angular и столкнулся со следующей проблемой.
Разные контроллеры используют одни и те же данные, потому решил хранить их в factory.
Но не могу понять, почему в таком случае возвращается переменная dbListWithTables = null, когда в консоль выводится правильный объект.
Код фабрики:
'use strict';
angular.module('labApp').factory('StorageFactory', ['$http', function ($http) {
var storage = {};
var err = '';
var dbList = null;
var dbListWithTables = null;
storage.getDbListWithTables = function() {
var conf = {
method: 'GET',
url: '/php/getDbInfoFull.php'
};
$http(conf).then(
function successCallback(success) {
console.log(success.data);
dbListWithTables = success.data;
},
function errorCallback(error) {
err = error.data;
}
);
return dbListWithTables;
};
return storage;
}]);
Код контроллера, где вызывается функция getDbListWithTables()
'use strict';
angular.module('labApp').controller('navCtrl', ['$scope', 'StorageFactory', function ($scope, StorageFactory) {
$scope.storage = StorageFactory;
if ($scope.dbListFull === undefined) {
$scope.dbListFull = $scope.storage.getDbListWithTables();
}
}]);
Подскажите, пожалуйста, в чем может быть проблема?
Может я что-то не так понимаю.