Tôi đang cố triển khai chức năng tìm kiếm cho trang web của mình. Khi người dùng nhập cụm từ tìm kiếm foobar
vào hộp input
và gửi nó, anh ta được chuyển hướng đến http://mydomain.com/search?query=foobar
.Backbone.js có nên lấy các tham số GET từ URL không?
Sự cố :: Tôi nên lấy tham số GET query
từ URL và gửi nó tới phần phụ trợ và nhận một mảng kết quả như phản hồi JSON như thế nào? Tôi có nên làm theo cách này không?
Nỗ lực hiện tại của tôi dưới đây thậm chí không làm cho chức năng search
được kích hoạt.
Router
var AppRouter = Backbone.Router.extend({
routes: {
'search?query=:query': 'search'
// ... and some other routes
},
search: function(query) {
this.photoList = new SearchCollection();
var self = this;
this.photoList.fetch({
data: {query: query},
success: function() {
self.photoListView = new PhotoListView({ collection: self.photoList });
self.photoListView.render();
}
});
}
});
var app = new AppRouter();
Backbone.history.start({
pushState: true,
root: '/'
});
Người dùng có thể đi cho 'domain.com',' domain.com/something', 'domain.com/search' và router sẽ chạy chức năng chính xác để làm cho các yếu tố trên trang. Tương tác với các liên kết/nút/tab trên trang sẽ 'app.navigate()' đến một phân đoạn URI khác. Điều này có trả lời câu hỏi khi chuyển hướng đến 'index.html' để hỗ trợ' pushState' không? – Nyxynyx
Không, không. Tôi muốn biết làm thế nào bạn đang thiết lập máy chủ của bạn cho pushState, nó không tự động. Bạn cần phải định cấu hình máy chủ web của mình để xử lý các 404 khác để chuyển hướng trở lại index.html. – tbranyen
Tôi có một bộ định tuyến trong khuôn khổ PHP của mình để kiểm tra xem tuyến đường có hợp lệ hay không trước khi hiển thị trang chứa backbone.js. Nếu URL không hợp lệ, bộ định tuyến PHP sẽ chuyển hướng đến 404. – Nyxynyx