Показать сообщение отдельно
  #1 (permalink)  
Старый 01.11.2013, 19:04
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

Зависимая загрузка данных
Первым запросом после загрузки Ангуляра мы получаем айди пользователя (потом можем его поменять). Далее все остальные запросы и вычисления производятся на основании этого айдишника. Примерно так это выглядит (айди записан в $rootScope)
.controller('myCtrl', ['$rootScope', 'Comments', function ($rootScope, Comments) {

    $rootScope.$watch('global.userId', function(newValue, oldValue) {

        if (newValue !== oldValue) {
            var comments = Comments.query({userId: newValue}, function (data) {
                commentFn(data); //Логика обработки комментариев
            });
        }
    });
}])

Проблема в том, что во все контроллеры придется добавлять $watch и всю логику вычислять в нем. Как избавиться от подобной вложенности?

Можно как-нибудь перезапустить все или некоторые контроллеры приложения при получении айди пользователя?

Последний раз редактировалось Shitbox2, 01.11.2013 в 19:11.
Ответить с цитированием