Tôi có ứng dụng đang hoạt động bằng cách sử dụng Backbone 0.5.3, không còn hoạt động khi sử dụng xương sống 0.9.2.Đường trục chính không được gọi là
Tôi đã xác định rằng Router.navigate() không gọi tuyến đường của tôi vì một số lý do.
Đây là Router của tôi:
var Router = Backbone.Router.extend({
routes: {
'/mypage': 'mypage',
},
mypage: function() {
// show page ...
}
});
Calling con đường bằng tay như vậy hoạt động tốt:
Router.mypage()
Tôi cũng đã cố gắng để ghi đè phương pháp .navigate xương sống để gỡ lỗi ứng dụng của tôi ...
var Router = Backbone.Router.extend({
routes: {
'/mypage': 'mypage',
},
navigate: function(fragment, options) {
console.log("navigate called");
Backbone.history.navigate(fragment, options);
},
mypage: function() {
// show page ...
}
});
... có vẻ như .navigate được gọi nhưng ...
Backbone.history.navigate(fragment, options);
... chỉ không gọi tuyến đường.
Tôi đang sử dụng pushState, đây là cuộc gọi ban đầu của tôi:
Backbone.history.start({
root: '/',
pushState: true,
silent: true
});
Đã thử nó không có tham số gốc và im lặng - không thành công.
Một lần nữa: Hoạt động này sử dụng Backbone 0.5.3.
Nhờ mọi người để lại câu trả lời!
Achim
Xin chào @mu quá ngắn, cảm ơn bạn, tôi đã kiểm tra điều này rồi. tuyến đường không được tìm thấy có và không có dấu gạch chéo đầu và/hoặc dấu gạch chéo. Gọi App.Router.mypage() hoạt động tốt, vì vậy nó phải là một cái gì đó về phù hợp với tuyến đường. –
Rất tiếc! Bạn nói đúng, chỉ cần kiểm tra lại các tuyến đường của tôi và sửa lỗi này! Btw: Hành vi mới về các dấu gạch chéo hàng đầu trong các tuyến đường được đề cập trong danh sách thay đổi của backbone cho phiên bản 0.9 [http://backbonejs.org/#changelog](http://backbonejs.org/#changelog) –
@Achim: Cảm ơn để kiểm tra các thay đổi. –