Angular2路由设计 - 默认导航组件与登录
我正在寻找一些关于Angular2的预期设计是用于登录还是登录视图的建议。Angular2路由设计 - 默认导航组件与登录
如果我的用户登录,我想要一个默认显示的导航和菜单栏组件 - 因此我会把它放在显示当前路由视图的router-outlet之外。
路由是由路由守护,如果用户没有登录其重定向到一个登录页面的保护。
这里的渔获艰难的,我显然不希望菜单和导航显示,如果用户尚未登录。
那么这种情况下的预期设计是什么?我是否需要使用2个路由器插座,一个用于登录vs!loggedIn视图,另一个用于实际路由组件?
由于您为将来的后端调用保存了一个令牌,因此您可以* ngIf和询问您的本地存储服务,或者如果用户之前根据令牌的存在或以前的任何逻辑使用。 这样做这样的事情:
<header id="mysupersecretheader" *ngIf="loggedIn"></header>
如果结果是假的,你会得到这样的输出HTML:
<!--template bindings={
"ng-reflect-ng-if": "false"
}-->
这甚至不会暴露什么打算在那里。
由于一切都在不断变化,你应该阅读发行说明和文档,它真的有帮助! Here is the template syntax section
但是当您按下浏览器的后退按钮时,这种方法会中断。 即它会带你到有效登录的登录页面。你可以看到导航栏。
你是对的。任何解决方案? – TommyF
我正在使用全局事件发射器,它将发射将在AuthGuard中的事件'showNavBar'。它在应用程序组件的构造函数中订阅。 – user1882613
谢谢!最初,这对我来说并不适用,因为一些CSS设计问题,但最终我决定css必须改变,因为ngIf确实是处理这种情况的最佳方式。干杯,汤姆 – TommyF