Несколько нг-просмотр с нг-если

В моем приложении страница индекса похожа

<div ng-if="isLoggedIn>
   <div ng-view>
     </div>
<div ng-if="!isLoggedIn">
   <div ng-if="type==='admin'">
      <div ng-view>
      </div>
   </div>
   <div ng-if="type!=='admin'">
      <div>.....</div>
      <div ng-view>
      </div>
   </div>
</div>

Так что в основном у меня разные нг-взгляды для разных взглядов. Проблема здесь в том, что когда пользователь не вошел в систему, страница входа отображается с помощью ng-view. Но при входе в систему ng-view снова инициализируется страницей входа в систему (может быть, потому что $route.current уже установлен).

Когда пользователь нажимает кнопку входа в систему, он / она направляется на домашнюю страницу и снова перенаправляется на страницу входа. поэтому на странице не отображаются никакие изменения.

Эта проблема может быть решена с помощью ng-show/hide insted из ng-if. Но это создает еще одну проблему, заключающуюся в том, что контроллеры дважды называются из-за двух ng-view в dom, а также на элемент нельзя ссылаться с помощью идентификатора, потому что два элемента генерируются из одного идентификатора. Так что это решение не может быть использовано.

Есть ли способ решить это?

1 ответ

Несколько & Вложенный ng-view не будет работать на той же странице.

Вам нужно взглянуть на угловой UI-роутер, который отлично подойдет для вашего случая, вы также можете использовать вложенный ui-view используя угловой UI-роутер или, может быть, вы можете избежать ng-if с помощью ui-router

Другие вопросы по тегам