Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.11.2016, 14:00
Новичок на форуме
Отправить личное сообщение для Davert Посмотреть профиль Найти все сообщения от Davert
 
Регистрация: 06.11.2016
Сообщений: 1

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();
    }

}]);


Подскажите, пожалуйста, в чем может быть проблема?
Может я что-то не так понимаю.
Ответить с цитированием
  #2 (permalink)  
Старый 07.11.2016, 05:37
Профессор
Отправить личное сообщение для krasovsky Посмотреть профиль Найти все сообщения от krasovsky
 
Регистрация: 21.12.2012
Сообщений: 869

НАверное не factory а service тебе надобен, ибо первый инициализируется каждый раз при инжекте, а второй один раз, и во всех остальных местах юзается этот "один".
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как залочить кнопку отправки (после отправки данных) в форме на указанное время? ninjajnin Events/DOM/Window 2 22.10.2015 09:39
Каталог с несколькими фильтрами: проверка на отображение (в т.ч. используется jQuery) armidoll Общие вопросы Javascript 13 19.08.2015 22:50
initComponent: Как получить данные родителя и как получить store для вызова load()? Пролетарий ExtJS 76 04.07.2015 09:22
Получение данных AJAX. Кто как делает? visor jQuery 1 03.04.2013 14:11
Кто знает как можно в подгружаемой библиотеке сделать выборку данных grigori59 AJAX и COMET 5 20.12.2012 22:47