factory как хранилище данных из БД
Здравствуйте!
Изучаю 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(); } }]); Подскажите, пожалуйста, в чем может быть проблема? Может я что-то не так понимаю. |
НАверное не factory а service тебе надобен, ибо первый инициализируется каждый раз при инжекте, а второй один раз, и во всех остальных местах юзается этот "один".
|
Часовой пояс GMT +3, время: 21:07. |