Tôi có Model sau:backbone.js thay đổi tham số url của một mô hình và lấy không cập nhật dữ liệu lấy
window.MyModel = Backbone.Model.extend({
initialize: function(props){
this.url = props.url;
}
parse: function(){
// @override- parsing data fetched from URL
}
});
// instantiate
var mod = new MyModel({url: 'some/url/here'});
tôi sử dụng biến toàn cầu này 'mod' để lấy một số dữ liệu vào mô hình này từ backend.
// fetch
mod.fetch({
success: function(){ ...},
error: ...
});
Tất cả ở trên hoạt động tốt .... My Vấn đề: Tôi muốn sử dụng lại mô hình này bằng cách thay đổi thiết lập lại url và gọi lấy nhưng nó không cập nhật các url bằng cách nào đó. Tôi đã thử các cách sau:
mod.fetch({
data: {url:'/some/other/url'},
postData: true,
success: function(){ //process data},
error: ...
});
mod.set({url: '/some/other/url'});
// called fetch() without data: and postData: attributes as mentioned in previous
Làm cách nào để đặt url cho mô hình của mình để tôi có thể gọi hàm fetch() và tìm nạp dữ liệu từ url được cập nhật? Tui bỏ lỡ điều gì vậy. Thanks cho bất kỳ con trỏ ..
UPDATE 1: Về cơ bản, tôi không thể để có được giá trị cập nhật nếu tôi đã làm
model.set({url: 'new value'});
Tiếp theo
model.fetch();
'mô hình' là một biến toàn cầu . Tạo ví dụ mới về công việc 'mô hình':
model = new Model({url:'/some/other/url'});
model.fetch();
tuy nhiên, hoạt động theo yêu cầu. Điều này có nghĩa là một cá thể mô hình được gắn vĩnh viễn vào một url và nó không thể được đặt lại?
TRẢ LỜI CÂU HỎI CỦA TÔI TRONG CẬP NHẬT 1 Ví dụ mẫu không được đính kèm vĩnh viễn vào url. Nó có thể được thiết lập lại động. Vui lòng đọc kỹ giải thích kỹ lưỡng của @ tkone và sau đó là giải pháp @fguillens để hiểu rõ hơn.
tại sao bạn thay đổi URL? ý tưởng đằng sau một webservice RESTful là đối tượng của bạn luôn luôn có sẵn tại cùng một URL (với một ID khi cần thiết cho một đối tượng cụ thể) – tkone