Где маршрутизатор Durandal устанавливает заголовок страницы

Я использую Durandal для очень простого веб-сайта. На всех вкладках моего браузера в заголовке страницы отображается «undefined|». добавляется перед заголовком приложения. Откуда Дюрандаль берет и устанавливает это значение?

фталакер


person pthalacker    schedule 30.05.2013    source источник


Ответы (3)


В конечном счете, плагин маршрутизатора Durandal устанавливает файл document.title.

https://github.com/dFiddle/dFiddle-1.2/blob/gh-pages/App/durandal/plugins/router.js#L254

onNavigationComplete: function (routeInfo, params, module) {
    if (app.title) {
        document.title = routeInfo.caption + " | " + app.title;
    } else {
        document.title = routeInfo.caption;
    }
},...

Обычно Durandal может создать отсутствующее свойство заголовка для объекта маршрута, поэтому, возможно, есть что-то другое в способе настройки маршрутов.

https://github.com/dFiddle/dFiddle-1.2/blob/gh-pages/App/samples/shell.js#L6

router.map([

   { url: 'hello', moduleId: 'samples/hello/index', name: 'Hello World', visible: true },
   { url: 'hello/:name', moduleId: 'samples/hello/index', name: 'Examples' },...
]);
person RainerAtSpirit    schedule 31.05.2013
comment
Я использую автокарту. Нужно ли мне вручную указывать все мои маршруты, чтобы дать им подписи? - person pthalacker; 03.06.2013
comment
Похоже, что несколько месяцев назад возникла проблема с mapAuto. github.com/BlueSpire/Durandal/pull/97. Я предлагаю загрузить файлы 1.2 с durandaljs.com/pages/downloads в качестве подсистем маршрутизатора. в настоящее время находится в стадии серьезной переработки на github. - person RainerAtSpirit; 03.06.2013
comment
Я только что удалил и переустановил Durandal и роутер. Менеджер пакетов говорит, что у меня 1.2.0. Все еще есть неопределенность в routeInfo.caption. Где создается объект routeInfo? - person pthalacker; 03.06.2013
comment
Я предлагаю вам создать объект маршрутизатора с помощью router.map([...]) в соответствии с рекомендациями durandaljs.com/documentation/Маршрутизатор. В противном случае вам придется вручную применять исправления в PR выше. - person RainerAtSpirit; 03.06.2013

Вы можете установить заголовок страницы при активации модели представления:

activate: function (params) {

    // Setting page title
    params.routeInfo.caption = "My Page Title";

    return true;
}
person Szili    schedule 21.08.2013

Замена заголовков страниц в Durandal 2.1.0

(если вы хотите, чтобы заголовок страницы отличался от последнего уровня маршрута)

Небольшая модификация ответа RainerAtSpirit: укажите «название» в маршруте вместо «имя».

router.map([
   { url: 'hello', moduleId: 'samples/hello/index', title: 'Hello World', visible: true },
   { url: 'hello/:name', moduleId: 'samples/hello/index', title: 'Examples' },...
]);
person SFlagg    schedule 01.03.2016