【发布时间】:2019-07-05 05:30:21
【问题描述】:
我必须显示两个不同的页面,即。登录前和登录后页面
登录页面前
这只会显示主页和登录按钮
登录后页面
这将显示一个包含所有菜单的通用模板页面
现在,我有两个页面,一个带有 router-outlet,用于显示没有菜单栏的简单页面,另一个带有由菜单栏包围的 router-outlet。但我的问题是,我无法决定哪个页面将出现在哪个路由器插座上,我如何以编程方式为页面选择路由器插座,是否有不同的方法,请咨询
--router-outlet-A
--home page
--login page
--router-outlet-B
--product page
--testimonial page
更新:
我正在寻找类似的东西
<router-outlet #templateA></router-outlet>
<router-outlet #templateB></router-outlet>
decideOnTemplate() {
if(user-not-logged-in) {
this.templateA.send(this.page)
} else {
this.templateB.send(this.page)
}
}
【问题讨论】:
-
嗨 Lijin Durairaj。如果用户被授权导航到产品或推荐页面,则可以通过使用 auth 保护轻松解决此类问题,否则使用 auth 保护重定向到登录页面。
-
不,我的问题不是授权/身份验证,我想以编程方式将页面放入其中一个路由器,我该怎么做?
-
真的有必要吗?我有一种感觉,对于这种复杂性,它有点过于复杂了。你不能只有2条路线,一条带有登录按钮+主页的路线(我们称之为登陆组件)和另一条产品+推荐(我们称之为面板组件)。然后您可以在登录后决定路由到哪个组件。路由器出口仅用于导航组件的子组件,以便不重新渲染父组件
-
我没有否决你的问题。我认为给出的示例中不需要路由器插座。
-
每个出口都有自己的一套路线。不同的出线路线不能轻易混淆。如果您不打算同时显示两个页面,那么您绝对不需要在同一页面上有两个插座。为了提供您的场景,您只需要条件渲染。
标签: angular angular6 angular-routing angular-router