2012-04-27 25 views
11

Bộ định tuyến trong Backbone.js chịu trách nhiệm định tuyến các trang phía máy khách và kết nối chúng với các hành động và sự kiện dựa trên các url. Nhưng làm thế nào để kích hoạt thay đổi url? Tôi có nghĩa là nếu cách duy nhất để làm điều này là để kèm theo các yếu tố liên kết với định tuyến trang trong thẻ <a>.Làm thế nào để kích hoạt các sự kiện Backbone.Router trong Backbone.js?

Vì tôi đã liên kết sự kiện chuột và chuột với phần tử được sử dụng để định tuyến, nếu tôi đặt nó trong thẻ <a>, sự kiện chuột và chuột phải sẽ không hợp lệ vì nó sẽ xung đột với sự kiện nhấp chuột của thẻ <a>. Vậy có cách nào khác để định tuyến không?

Trả lời

31

Bạn có thể sử dụng Router#navigate:

hướngrouter.navigate(fragment, [options])

Bất cứ khi nào bạn đạt đến một điểm nào đó trong ứng dụng của bạn mà bạn muốn lưu dưới dạng URL, hãy gọi hướng để cập nhật URL. Nếu bạn cũng muốn gọi hàm tuyến đường, hãy đặt tùy chọn kích hoạt thành true.

Vì vậy, nếu router của bạn là r và bạn muốn kích hoạt các tuyến đường cho #/some_route, sau đó bạn có thể:

r.navigate('some_route', { trigger: true }); 

Demo (mở giao diện điều khiển của bạn xin vui lòng): http://jsfiddle.net/ambiguous/xkZtB/

+0

Cảm ơn rất nhiều sự giúp đỡ của bạn! – chaonextdoor

+0

Một câu hỏi nữa, vì tôi phải truy cập dữ liệu trong mô hình để cung cấp id cho url của tôi, chẳng hạn như 'category /: id'. Tôi nên làm như thế nào? – chaonextdoor

+0

@chaonextdoor: Bạn có thể xây dựng tuyến đường thích hợp dưới dạng một chuỗi và đưa nó đến 'điều hướng':' r.navigate ('danh mục /' + m.get ('id'), {trigger: true}) ' –

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