Обновление браузера F5 не перезагружает текущий маршрут в durandaljs

Я нахожусь по этому адресу в Google Chrome:

http://mysite:7466/#lessonplanner

затем я нажимаю F5, чтобы обновить/перезагрузить текущий сайт, но содержимое не отображается повторно. Я вижу пустую страницу.

В консоли вижу: Маршрут не найден

Вот как настроен мой маршрут:

 router.map([
{ route: 'lessonplanner', moduleId: 'viewmodels/lessonplanner', title: 'lesson planner', nav: true }])
                 .buildNavigationModel();

Что я не так?


person Elisabeth    schedule 04.10.2013    source источник
comment
Трудно сказать. Я предполагаю, что маршрут определен в месте, которое не попадает, когда вы загружаете #lessonplaner напрямую. Попробуйте переместить его вверх по стеку.   -  person RainerAtSpirit    schedule 04.10.2013
comment
Вы правы, этот маршрут #lessonplanner загружается только тогда, когда запись учебного года загружается до того, к которому принадлежит этот планировщик уроков ... Нажатие F5 выполняет весь shell.js и ведет себя так, как учебный год никогда раньше не загружался, поэтому «маршрут не найден» '... Что бы вы сейчас предложили? Хм, на самом деле пользователь ожидает просто перезагрузить планировщик уроков, это означает, что я должен сохранить загруженный идентификатор учебного года в локальном хранилище. хорошо, это крайний случай, с которым мне придется иметь дело позже, когда я войду в систему ... Спасибо за подсказку, Райнер.   -  person Elisabeth    schedule 04.10.2013
comment
Если вы создаете одностраничное приложение с Durandal, можно ожидать, что вам не придется перезагружать страницу с помощью F5, если только нет ДЕЙСТВИТЕЛЬНО веской причины, но я никогда не слышал об этом, если есть...   -  person PW Kad    schedule 05.10.2013
comment
@PW Кад. Конечно, есть. Глубокие ссылки, например. #/categoryId/productId должно разрешиться, если люди попадут в него напрямую. Таким образом, в activate должен быть способ получить данные на основе categoryId и productId, потому что на данный момент это единственная информация, которая у вас есть.   -  person RainerAtSpirit    schedule 05.10.2013
comment
@PWKad У вас есть техническая точка зрения. С точки зрения пользователя, F5 всегда должен обновлять веб-сайт.   -  person Elisabeth    schedule 06.10.2013
comment
@Elisa Мой комментарий заключался в том, что с точки зрения дизайна никогда не следует нажимать F5, чтобы обновить страницу.   -  person PW Kad    schedule 06.10.2013
comment
@PW Kad, тогда мы должны спросить основную причину, по которой F5 вообще существует. Иногда, когда браузер загружает данные, он зависает. Для этого у вас есть кнопка «Попробовать еще раз». Это функция для пользователя, которую он может использовать, если что-то пошло не так :)   -  person Elisabeth    schedule 09.10.2013


Ответы (1)


Это классический пример, когда я разделил бы планировщик уроков на модуль и включил бы его в представление с основными данными. Затем перезагружается фактическое представление, которое будет работать, если оно правильно связано.

person Geirr Winnem    schedule 07.10.2013
comment
Я не уверен, правильно ли я понял ваш ответ. Или вы поняли мой сценарий, потому что мой планировщик уроков уже является модулем. Я не могу загрузить в планировщик уроков основные данные, потому что планировщик уроков относится к учебному году, который должен быть загружен раньше. На самом деле маршрут должен быть таким: localhost:80/schoolyear/13-09-2013/lesonplanner. Но мне все еще нужно реализовать эту глубокую ссылку. - person Elisabeth; 09.10.2013