#javascript #html #mvvm
#javascript #HTML #mvvm
Вопрос:
Итак, у меня есть свой spa, и при хэш-обмене я загружу новый HTML-файл в свой
Дело в том, что когда я нажимаю кнопку «Назад», я не хочу повторно загружать файл .html, потому что я хочу сохранить свои настройки или элементы, которые я щелкнул или изменил в моей viewmodel (я делаю MVVM).
Итак, ниже, если я нажму на функцию clickAbout, она перейдет на страницу about, но когда я вернусь к основному списку, все мои настройки будут потеряны, потому что они перезагружены. Как мне лучше всего это сделать? Я думаю, я мог бы использовать файлы cookie, или, может быть, я просто загружаю viewmodel на главную страницу.
function clickAbout() {
location.hash = "#about";
}
$(window).bind('hashchange', function (e) {
var locationHashStr = window.location.hash.substr(1).split('amp;')[0];
$("#divContent").load("/Content/" locationHashStr ".html");
});
$(document).ready(function () {
if (window.location.hash) {
var locationHashStr = window.location.hash.substr(1).split('amp;')[0]
$("#divContent").load("/Content/" locationHashStr ".html");
}
else {
location.hash = "#assetlist";
}
});
Ответ №1:
Вам нужно использовать pushstate.
Взгляните на https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history .