Следуя курсу Джона Папы, я создаю SPA и пытаюсь убедиться, что пользователи попадают в SPA только после аутентификации Facebook/Google+. Для этого у меня есть два контроллера MCV, по умолчанию и посадочный контроллер называется Home/Index, и он отображает только вводный экран с кнопками входа FB/G+. После использования нажмите одну из кнопок и аутентифицируйте пользователей, а затем перенесите их на второй контроллер, который является фактической страницей SPA и имеет div с id = applicationHost и где загружается оболочка и начинается 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/#»
В результате я получаю ошибку 404 от Sammy.
Когда я загружаю вручную, перейдите на «localhost: XXXX/SPA/Snaps/#», я получаю представление без проблем.
Как я могу заставить маршрутизатор искать маршруты «привязка» и «место» в контроллере SPA MVC, а не в «домашнем» контроллере.
Все это я делаю только для того, чтобы удостовериться, что я аутентифицирую людей, прежде чем разрешить им доступ в SPA, поэтому, если есть способ выполнить аутентификацию в одном из представлений SPA, я по существу избежал этой проблемы. Если нет ответа на мой вопрос выше, по крайней мере, если кто-то может пролить свет на то, как я могу выполнить аутентификацию пользователя в представлении SPA, это тоже будет здорово.
заранее спасибо