2016-12-24 14 views
2

Я хочу показать разные представления на основе пользователя моего приложения, например, если пользователь admin, он может видеть все элементы управления или когда он действует как user, он может видеть только подмножество элементов управления и пользовательский интерфейс, и он может выполнять ограниченное действие.Отображение пользовательского представления на основе роли пользователя в angularjs

Одно из решений, которое приходит мне на ум, отправляет информацию о роли со страницей как JSON, но для этого потребуется, чтобы я знал о зарегистрированном пользователе, поэтому, в основном, я могу сначала проверить, зарегистрирован ли пользователь или нет через куки? если нет, я могу просто загрузить облегченную версию страницы входа и после входа пользователя в систему, то я могу отправить новую страницу в целом с информацией о профиле пользователя, встроенной в нее.

Другой подход, который я вижу, заключается в том, что я могу загружать мое угловое приложение, а затем проверять состояние входа в систему и, если логин завершен, затем привести информацию профиля через JSON и обновить представление, но я думаю, что это будет медленный и подверженный ошибкам.

Я не знаю, что лучше всего/рекомендуется.

ответ

1

Первый подход, как представляется, лучший подход из этих 2.

Проблема со вторым подходом является вы отправляете 2 запроса на сервер - один для входа в систему, а затем 2-ым, чтобы получить роль пользователя/профиль , Если вы выбираете этот подход, то вы можете иметь несколько вопросов, в зависимости, как вы собираетесь реализовать:

  1. Если вы обновляете свой пользовательский интерфейс после входа в систему, то вам придется решить, что должно быть показано пользователю, поскольку вы пока не знаю профиля пользователя. Даже если вы придумаете какой-то минимальный пользовательский интерфейс, появится еще один запрос на получение профиля, который снова будет обновлять пользовательский интерфейс - 2 обновления UI могут раздражать пользователя. Не говоря уже о том, что есть 2 запроса, которые могут сделать ваш сайт медленным.
  2. Если вы решили не обновлять пользовательский интерфейс после входа в систему, но только после того, как вы получите профиль пользователя, все же задержка будет больше, так как вам придется ждать ответа от двух отдельных запросов. Может быть серьезной проблемой в медленных сетях (считать мобильными)

Если вы используете первый подход, вы избавитесь от вышеупомянутых проблем.