2011-11-26 25 views
7

Tôi muốn có các URL có thể đánh dấu trang mà trình duyệt có thể nắm bắt và xử lý. Nếu tôi chỉ sử dụng Backbone.history.start(), thì tôi có thể sử dụng URL băm, như /# accounts.Không thể nhận các tuyến đường Backbone mà không có băm?

Nhưng tôi muốn URL không có băm, a la /accounts. Nhưng tôi không thể làm việc này bằng cách sử dụng Backbone.history.start ({pushState: true}) (as others have described it). Các tuyến đường của tôi rất đơn giản và được lấy trực tiếp từ the documentation.

 

    MyRouter = Backbone.Router.extend({ 
     routes: { 
      '/accounts': 'accounts', 
     } 
    }); 

Tôi đang sử dụng Chrome (cũng thử với FF), và hành vi là một /chiếm yêu cầu đi thẳng đến máy chủ. Không bị chặn bởi Backbone đầu tiên. Có ai chạy vào điều này? Làm cách nào để có được xử lý URL băm với Backbone?

Cảm ơn trước

+1

CáC# được sử dụng để liên kết nội bộ trong html, tất cả các url mà không # sẽ được chuyển tới máy chủ. Bạn vẫn có thể thêm tuyến đường, nhưng tất cả các liên kết với số # sẽ đi theo máy chủ đầu tiên –

Trả lời

17

Bạn sẽ điều hướng đến url với js sử dụng router.navigate("/accounts", true), không phải bởi các liên kết hoặc nhập url mình. Để sử dụng liên kết, bạn phải liên kết sự kiện nhấp chuột với họ và ngăn tác vụ mặc định và điều hướng cuộc gọi đến liên kết href.

router là một thể hiện của Router

+0

Quá đúng. Cảm ơn vì đã làm rõ điều đó cho tôi. – Nutritioustim

Các vấn đề liên quan