Tôi đã cố gắng tự động thay đổi url bên trong bộ định tuyến nhưng không thể quản lý nó, nó tiếp tục trở lại URL Bộ sưu tập cơ bản. Ở đây tôi đăng mã với 3 bộ sưu tập khác nhau mà ngoài việc trỏ đến ba url khác nhau mà họ làm chính xác như nhau. Tôi chỉ có một model
và ba collections
phụ thuộc vào mô hình đó và thậm chí là hiển thị cùng một chế độ xem. Làm cách nào tôi có thể thay đổi động url
để tôi chỉ có thể tạo một Collection
và một Model
? Nó là pracitce tốt nhất cho một trường hợp như thế này?Tự động thay đổi url trong Backbone
// MODELS & COLLECTIONS
window.Post = Backbone.Model.extend({
urlRoot: function() {
return 'http://localhost:5000/json/guides/:id'
}
})
App.Collections.RecentPosts = Backbone.Collection.extend({
model: Post,
url:'http://localhost:5000/json/posts/recent',
})
App.Collections.PopularPosts = Backbone.Collection.extend({
model: Post,
url:'http://localhost:5000/json/posts/popular',
})
App.Collections.FeaturedPosts = Backbone.Collection.extend({
model: Post,
url:'http://localhost:5000/json/posts/featured',
})
// CONTROLLER
App.Controllers.Documents = Backbone.Router.extend({
routes:{
"recent" : "recent",
"popular" : "popular",
"featured" : "featured",
},
recent: function(){
//.... same as featured ?
},
popular: function(){
//.... same as featured ?
},
featured: function(){
$("#browser").empty();
var collection = new App.Collections.Posts();
collection.fetch({
success: function(col,posts){
new App.Views.GuideView({collection: posts});
},
error: function(error){
console.log(error)
}
})
}
});
Cảm ơn! Nó hoạt động tuyệt vời. Đây là cách tiếp cận ban đầu của tôi nhưng tôi đã không khởi tạo 'Router' và cũng đã làm sai:' fetch ({url: config.url}, success: .... '. Tôi cũng có trong' Router' a 'Home' * chức năng * mà' this.navigate ("phổ biến") 's. Điều đó không hoạt động ... tại sao là? – Maroshii
Tôi nghĩ rằng vì 'điều hướng' được gọi là âm thầm theo mặc định. Hãy thử làm' this.navigate ("phổ biến", {trigger: true}); ' – Stephen
Cảm ơn một lần nữa .... Anh hùng trong ngày! – Maroshii