【问题标题】:Angular2 Bootstraping two application one ofter other in same pageAngular 2在同一页面中一个接一个地引导两个应用程序
【发布时间】:2017-02-18 11:18:06
【问题描述】:

我正在使用 angular2 开发一个项目。它有两部分,第一部分是登录,另一部分是仪表板。我想在一个应用中开发登录部分,在另一个应用中开发仪表板部分。

问题是,在同一页面登录应用程序后,我无法加载仪表板应用程序。

我找到了一个链接,他们在同一页面中引导两个应用程序,但我想在同一页面中同时加载一个应用程序。

他们在同一页面中引导两个应用程序的链接是:

Bootstrapping multiple Angular 2 applications on the same page

这样做的主要目的:安全

假设用户想要登录,我希望 Dashboard 应用程序由 Angular2 单独引导。

为什么我不使用单独的组件是因为我不想暴露与Login 组件一起加载的其他组件。

【问题讨论】:

  • "我想在一个应用中开发登录部分,在另一个应用中开发仪表板部分。" - 为什么不只是 1 个应用程序封装两个主要组件?
  • "我想在一个应用中开发登录部分,在另一个应用中开发仪表板部分。"然后“但我想在同一页面同时加载一个应用程序。”你是什么意思?
  • 我认为他的意思是他想在一个页面上加载登录,而在另一个页面上加载其余的应用程序。从“单页应用程序”中考虑“页面”。 @yurzui

标签: javascript angular typescript


【解决方案1】:

我在这里看到两个主要选项(我确定还有其他选项):

选项 1:分别用于登录和仪表板的应用

您可以让您的登录和仪表板应用程序各有自己的网址,例如https://myhost:1234/loginhttps://myhost:1234/dash

当用户尝试访问 /dash 时,服务器会检查他们是否已登录,如果未登录则重定向到 /login。当用户通过 /login 登录时,服务器会建立会话,然后重定向到 /dash。

选项 2:

在路由器上使用guard,以防止用户导航到仪表板,除非他们已登录。

请参阅TempHire Sample Application 以获取使用警卫的示例。在此示例中,guard 对服务器执行 ajax 调用,并使用响应来确定是否继续。 (响应还会将 Breeze 元数据带到客户端,但那是因为它是一个 Breeze 应用程序。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-08
    • 1970-01-01
    • 1970-01-01
    • 2018-04-23
    相关资源
    最近更新 更多