我正在使用AngularJs开发单页面应用程序。取决于用户选项,显示/隐藏相应的视图。
我的网址为localhost:8086/portal/
,默认目标网页为信息中心。
但是,有一项要求:我需要在localhost:8086/portal/
之类的另一个页面上提供链接,而不是提供localhost:8086/portal/reports
,默认情况下该页面应位于“报告”页面上。
因为,我正在开发SPA,我的网址不会改变,但在这种情况下,我需要通过点击不同的链接登陆不同登录页面的相同网址。
答案 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);
}
);