Показать сообщение отдельно
  #6 (permalink)  
Старый 24.02.2015, 17:50
Аватар для MetaDriver
Аспирант
Отправить личное сообщение для MetaDriver Посмотреть профиль Найти все сообщения от MetaDriver
 
Регистрация: 24.04.2014
Сообщений: 66

Сообщение от evgeniy123 Посмотреть сообщение
На каждой странице у нас блок див в котором или кнопка доступ к странички profile-user или Login В Зависимости пользователь вошел или нет. как бы вы это реализовали если ангулар кэширует данные с шаблоном ?
Вот это ближе к телу.
Это на ангуляре делается сотней способов. Ключевые фишки для управления DOM'ом "по условию":
ngShow
ngIf
ngSwitch
ngInclude // ngInclude берёт на вход ангуляр-выражение, так что можно перегружать шаблон по собственному условию, если шаблон кеширован - то и берётся из кеша.
и т.д.
Начни разбираться - быстро сам найдёшь ещё возможности.
Для примера приведу кусочек своей менюшки, меняющийся в зависимости от пары условий:
<ul class="nav navbar-nav pull-right">    
*!*
      <li ng-show="loginView()" class="divider-vertical"></li>
      <li ng-show="loginView()" class="divider-vertical"></li>
      <li ng-show="loginView()" ui-sref-active="selected"><a ui-sref="Login">{{menuLoginText()}}</a></li>
*/!*
      <li class="divider-vertical"></li>
      <li class="divider-vertical"></li>
      <li class="divider-vertical"></li>
</ul>
Тут два вида изменений. Во первых, кнопка вообще может быть невидима. Для случайного гостя вход на сайт вообще отсутствует. Чтобы отобразилась кнопка "Вход", нужно нажать другую "особо секретную" кнопку, и где её искать, знают только "посвящённые" зарегистрированные пользователи, которым разрешается редактирование базы. Реализовано посредством ng-show="loginView()", функция loginView() возвращает булево значение. Второй аспект - текст на кнопке, меняющийся в зависимости от того, залогинился ли пользователь и каковы его права. Реализовано через <a ui-sref="Login">{{menuLoginText()}}</a>.
Всё работает как часы и мгновенно реагирует на изменения переменных в контроллерах.

Последний раз редактировалось MetaDriver, 24.02.2015 в 23:01.
Ответить с цитированием