Tôi muốn chặn mọi thay đổi tuyến đường bằng Sammy trước tiên phải kiểm tra xem có hành động đang chờ xử lý hay không. Tôi đã làm điều này bằng cách sử dụng API sammy.before
và tôi trả về false để hủy tuyến đường. Điều này giúp người dùng trên 'trang' nhưng nó vẫn thay đổi băm trong thanh địa chỉ của trình duyệt và thêm tuyến đường vào lịch sử của trình duyệt. Nếu tôi hủy bỏ các tuyến đường, tôi không muốn nó trong thanh địa chỉ cũng không phải lịch sử, nhưng thay vào đó tôi hy vọng địa chỉ để ở lại giống nhau.Hủy lộ trình bằng Sammy.js mà không ảnh hưởng đến lịch sử
Hiện tại, để giải quyết vấn đề này, tôi có thể gọi window.history.back (yuk) để quay lại vị trí ban đầu trong lịch sử hoặc sammy.redirect. Cả hai đều ít hơn lý tưởng.
Có cách nào để làm cho sammy thực sự hủy tuyến đường để nó vẫn nằm trên tuyến đường/trang hiện tại, để lại thanh địa chỉ như vậy và không thêm vào lịch sử không?
Nếu không, có thư viện định tuyến nào khác sẽ thực hiện việc này không?
sammy.before(/.*/, function() {
// Can cancel the route if this returns false
var response = routeMediator.canLeave();
if (!isRedirecting && !response.val) {
isRedirecting = true;
// Keep hash url the same in address bar
window.history.back();
//this.redirect('#/SpecificPreviousPage');
}
else {
isRedirecting = false;
}
return response.val;
});
Hahaha John, tôi đến đây bằng cách tìm kiếm thêm thông tin về làm thế nào bạn đạt được điều này trong loạt SPA của bạn :-) –