Используя 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.

Другие вопросы по тегам