У меня есть список групп контактов, которые я показываю на виду. Когда я нажимаю на группу контактов, я хочу изменить текущий хэш и загрузить связанные контакты.DurandalJS - перемещаться без viewmodel refresh
Скажем, у меня есть 3 группы контактов
Все (не Id)
Друзья (Id: = 1)
Семья (Id: = 2)
Другие (Id: = 3)
Если я нажимаю «Друзья», необходимо изменить URL-адрес на #/people/1, и необходимо вызвать обратный вызов с параметрами (Id = 1). Если нажать «Все», ни один идентификатор не должен быть передан (#/people), чтобы загрузить все контакты.
Что-то вроде:
router.when("#/people/:id", function (routeData) {
console.log(routeData.Id); //Output: 1
// Load contacts by id
});
router.when("#/people", function() {
// Load all contacts
});
function onContactGroupClick(contactGroup) {
router.navigateToWithoutReset("#/people/" + contactGroup.Id);
}
Причина заключается в том, что я хотел бы иметь центральное место, где это не имеет значения, если вызов выполняется с помощью кода или вручную (изменить URL-адрес, или нажмите на гиперссылка).
Хорошим примером является Gmail/Контакты
Если я использую router.navigateTo из DurandalJS, весь вид модели будет перезагружен. Есть ли способ сделать это с DurandalJS, но без обновления модели представления?