按照 John Papa 的课程,我正在构建一个 SPA,并试图确保用户只有在 Facebook/Google+ 身份验证后才能访问 SPA。为此,我有两个 MCV 控制器,默认和着陆控制器称为 Home/Index,这仅显示带有 FB/G+ 登录按钮的介绍性屏幕。一旦使用单击按钮之一并验证用户,然后将被带到第二个控制器,这是实际的 SPA 页面,并且具有 id=applicationHost 的 div 以及 shell 加载和 SPA 开始的地方。
我正在使用以下路线 JSON 数组来映射我的路线
var routes = [{
url: 'snaps',
moduleId: 'viewmodels/snaps',
name: 'Snaps',
visible: true
},{
url: 'places',
moduleId: 'viewmodels/places',
name: 'Places',
visible: true
}];
但是当我调用 router.map(config.routes) 后跟 router.activate('snaps')
路由器正在整个应用程序的根目录中寻找 snaps 路由
它试图加载的 url 就像'localhost:XXXX/Home/ # '
结果,我从 Sammy 收到 404 错误。
当我手动加载转到 'localhost:XXXX/SPA/Snaps/# 时,我的视图没有问题。
如何让路由器在 SPA MVC 控制器而不是“Home”控制器中查找路由“snap”和“place”。
我所做的所有这些只是为了确保在让他们进入 SPA 之前让他们进行身份验证,所以如果有一种方法可以在 SPA 视图本身中进行身份验证,那么我基本上已经避免了这个问题。如果上面的问题没有答案,至少如果有人可以阐明我如何在 SPA 视图中进行用户身份验证,那也很棒。
提前致谢