Как правильно работать с юзером в Angular?

Сейчас создал пользователя на основе $resource. Но работать с ним не очень удобно, создавая экземпляр в каждом контроллере. Есть способ избежать необходимости во всех контроллерах лезть в .get() через сервер, когда на странице все один пользователь, который уже залогинен?
  • Вопрос задан
  • 254 просмотра
Решения вопроса 2
miraage
@miraage
Старый прогер
Я предпочитаю серверную авторизацию. План действий такой:

- бэкенд смотрит, авторизован ли пользователь
- если нет = кидаем на страницу авторизации
- если да = запускаем SPA

В самом SPA рендерим данные пользователя бэкендом перед скриптами:
<script>
    window.$$userData = <?= json_encode($_SESSION['user']); ?>;
</script>
<script src="/path/to/angular.js"></script>
<script src="/path/to/app.js"></script>


Создаем сервис, который затем можно инжектить куда угодно.
(не забывайте, что .constant - это .value, который доступен на этапе конфигурации и не может быть изменен через $decorator - соответственно, можно спокойно менять поля объекта и они везде обновятся)
app.config(['$provide', function($provide) {
  $provide.constant('userData', angular.copy(window.$$userData));
}]);
Ответ написан
@daron666
java/scala developer
Да. Использовать сервис. Вот хорошая статья https://medium.com/opinionated-angularjs/technique...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы