Используя Director.js, как мне определить маршрут по умолчанию для корня сайта, в котором нет # хеша?
Я использую flatiron / Director для маршрутизации на стороне клиента.
У меня есть маршруты, такие как:
var routes = {
'': function() { loadLandingPage(); },
'/author': function() { author(); }
};
Если я захожу на www.example.com#/author, то запускается функция автора. Если я захожу на www.example.com # или www.example.com # /, то загружается моя целевая страница.
Однако я хочу определить маршрут по умолчанию для корня моего сайта без #. Я хочу, чтобы целевая страница загружалась, даже когда мы попадаем на www.example.com без #.
Я просмотрел документацию, но за всю жизнь не могу с этим разобраться. Я думал, что метод конфигурации: notfound будет делать то, что я думаю, но ничего не сделал. Я попробовал следующее:
var router = Router(routes).configure({ notfound: loadGlobalPage});
а также
var router = Router(routes).configure({ notfound: function () {loadGlobalPage();} });
а также после прочтения этой темы я попытался:
router.notfound = function() {
loadGlobalPage();
};
Я также попробовал взломать не связанные с маршрутизатором:
function determineIfLandingPage() {
if (window.location.hash == "") {
loadGlobalPage();
window.location.href += "#"
}
}
Это работает, но похоже на взлом.
Это должно быть несколько распространенным вариантом использования - как получить желаемую функциональность от моего маршрутизатора?
1 ответ
Из документа: метод redirect решит эту проблему.
route.init(['/'])
будет перенаправлять на маршрут /
если '/#/'
не найден в URL.