Gần đây tôi đã bắt đầu sử dụng knockout.js và sammy.js để hiện đại hóa ứng dụng của mình. Tuy nhiên tôi đã bị mắc kẹt với một số vấn đề.chặn sammy.js khỏi ăn cắp 'liên kết thực'
Tôi có một số liên kết hợp lệ trên trang - người dùng thực sự nên điều hướng đến vị trí đó, thay vì bắt chước các hành vi điều hướng bằng cách sử dụng sammy.js
. Tôi chỉ muốn các liên kết dựa trên băm được định tuyến bởi sammy.js, nhưng nó cũng chặn các liên kết không chứa bất kỳ băm nào. Ví dụ:
chẳng hạn, nó chặn <a href="/logout">logout</a>
.
phần js mà không định tuyến là:
Sammy(function() {
this.get('#/', function() {
...
});
this.get('#:id', function() {
...
});
this.get('', function() { this.app.runRoute('get', '#/') });
}).run();
Tôi nghĩ this.get('' ..)
phần là thủ phạm mà gọi hành vi này - tôi đã nhận nó từ knockout.js hướng dẫn, trong đó nói rằng dòng là cần thiết để cho phép người dùng từ các nguồn gốc khác để duyệt đúng trang web của tôi. trang được chạy bởi mã knockout.js là /w/
. Tôi muốn sammy.js chỉ hoạt động trong /w/
hoặc ít nhất cho phép người dùng điều hướng đến /logout
. Làm thế nào tôi có thể thực hiện điều này?
Bạn đã bao giờ giải quyết vấn đề này chưa? Nếu không, tôi chắc chắn sẽ khuyên bạn nên sao chép này trên [jsfiddle] (http://jsfiddle.net/). – edhedges
@edhedges Tôi nghĩ đây là về việc xác định các điểm vào của ứng dụng web của bạn. ứng dụng của tôi là ứng dụng nhiều trang truyền thống có HTML được tạo từ máy chủ web python (và tận dụng sammy.js và hash + ajax ở một mức độ nào đó). Vì vậy, giải pháp của tôi cho điều này đã được loại bỏ 'this.get ('', ...)' và đặt 'location.href ='. các url không băm không bị chặn. –
thkang
Bạn nên tự mình trả lời câu hỏi cho người khác nếu bạn đã giải quyết nó. – edhedges