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