Магистраль Просмотр добавленных ссылок перезагрузить сайт

После рендеринга Backbone View я вставляю HTML, сгенерированный с помощью jQuery. Этот HTML также включает ссылки внутри приложения. Если вы нажмете на эти ссылки, они перезагрузят сайт.

Как я могу связать эти ссылки, чтобы они запускали маршрутизатор и не перезагружали сайт?


person Thomas Niepraschk    schedule 22.07.2013    source источник
comment
Не могли бы вы опубликовать код для маршрутизатора и соответствующие теги html?   -  person fbynite    schedule 22.07.2013


Ответы (1)


Вы должны привязать событие клика к этим ссылкам и вызвать Router.navigate. Важно, чтобы вы return false из своего обработчика событий, так как это не позволит браузеру фактически перейти по ссылке. Еще одна важная вещь - передать trigger: true, чтобы ваш маршрутизатор действительно работал (в противном случае он изменит только URL-адрес, отображаемый в адресной строке).

events : {
    'click a.changeView' : 'changeView'
},

changeView : function(e) {
    Router.navigate(e.target.href, { trigger: true });
    return false;
}

Кроме того, вам, возможно, придется немного настроить href, если он содержит протокол, домен и т. д., например, если ваш href — это http://mydomain.com/mypage, вам может потребоваться передать маршрутизатору только mypage.

person namero999    schedule 22.07.2013