У меня возникли проблемы с пониманием того, почему, когда в моем приложении Durandal, после того, как я перейду на страницу с подробной информацией, вернитесь к списку. Я получаю URL-адрес с URL-адрес страницы детали, встроенный в текущий URL-адрес.Url не возвращается к базовому состоянию при переходе на какую-то страницу, а затем обратно
Например:
Когда я начинаю я получил: http://localhost:51429/#/
Тогда я иду на странице детали: http://localhost:51429/physDetail
Тогда я вернуться на страницу списка: http://localhost:51429/physDetail#/physList
Почему я получаю «physDetail #», встроенный в URL-адрес? Проблема заключается в том, что если я ударил F5, чтобы обновить HTML я получаю 404.
Я устанавливаю маршруты, как это:
var routes = [{
url: 'physList',
moduleId: 'viewmodels/physList',
name: 'Physicians',
visible: true
}, {
url: 'physDetail',
moduleId: 'viewmodels/physDetail',
name: 'View Physician Detail',
visible: false
}, {
url: 'incentives',
moduleId: 'viewmodels/incentiveList',
name: 'Incentives',
visible: true
}, {
url: 'membershipList',
moduleId: 'viewmodels/membershipList',
name: 'Membership',
visible: true
}];
Переключение на страницу сведений происходит при нажатии на строку в списке , список HTML выглядит следующим образом:
обработчик<tbody data-bind="foreach: $root.physicians, delegatedHandler: 'click'">
<tr data-click="physClicked">
<td data-bind="text: contact_LastName"></td>
<td data-bind="text: contact_FirstName"></td>
<td data-bind="foreach: contact_Phones">
<span data-bind="phoneFormat: fullPhone"></span>
</td>
<td data-bind="foreach: contact_Emails">
<span data-bind="emailFormat: address"></span>
</td>
</tr>
</tbody>
JS выглядит следующим образом:
function physClicked(phys, event) {
router.navigateTo("physDetail");
return;
}
Возврат к списку (или другой странице), нажав на кнопку в верхней части страницы. Кнопка HTML выглядит так:
<div class="btn-group" data-bind="foreach: router.visibleRoutes">
<a data-bind="css: { active: isActive }, attr: { href: hash }, text: name"
class="btn btn-info" href="#"></a>
</div>
Должен ли я отказаться от перехода на другую страницу? Должен ли я разрешать только кнопку «Назад» или делать router.navigateBack() после сохранения или отмены?
Я попытался найти руководство по этому вопросу на сайте Durandaljs, но либо он не существует, либо я не знаю, какой правильный вопрос задать.
Спасибо за понимание.
Также следует отметить, что документы для маршрутизатора весьма превосходны: http: // durandaljs.com/documentation/Using-The-Router/ Вы также можете клонировать репо и проверить приложение стартера. В нем есть много действительно замечательных примеров использования. Вы можете посмотреть приложение для начинающих здесь: http://durandaljs.com/pages/samples/ – psyrendust