Несколько нг-просмотр с нг-если
В моем приложении страница индекса похожа
<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