为单个页面应用程序(SPA)创建链接以登陆不同的选项卡

时间:2015-12-21 21:58:48

标签: angularjs routing single-page-application

我正在使用AngularJs开发单页面应用程序。取决于用户选项,显示/隐藏相应的视图。

enter image description here

我的网址为localhost:8086/portal/,默认目标网页为信息中心。

但是,有一项要求:我需要在localhost:8086/portal/之类的另一个页面上提供链接,而不是提供localhost:8086/portal/reports,默认情况下该页面应位于“报告”页面上。 因为,我正在开发SPA,我的网址不会改变,但在这种情况下,我需要通过点击不同的链接登陆不同登录页面的相同网址。

1 个答案:

答案 0 :(得分:2)

我的解决方案是使用URL重写,因此您仍然登陆SPA页面但使用不同的URL。路由引擎将选择它并加载正确的模板。

.NET web.config示例。

<rule name="NewsByEmail">
   <match url="^newsbyemail/" />
   <action type="Rewrite" url="/app/newsbyemail/index.html" />
</rule>

<rule name="NewsByEmailUnsubscribe">
   <match url="^newsbyemail/unsubscribe/" />
   <action type="Rewrite" url="/app/newsbyemail/index.html" />
</rule>

角度路由。

myApp.config(
    ($routeProvider, $locationProvider) => {
        $routeProvider
            .when("/newsbyemail/", {
                templateUrl: "app/newsbyemail/subscribe/subscribe.html"
            }).when("/newsbyemail/unsubscribe/", {
                templateUrl: "app/newsbyemail/unsubscribe/unsubscribe.html"
            });

        $locationProvider.html5Mode(true);
    }
);