我有以下型号:Backbone.js的更改模型的URL参数,并获取不更新数据获取
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'});
我用这个全局变量“国防部”将一些数据读取到从后端这种模式。
// fetch
mod.fetch({
success: function(){ ...},
error: ...
});
上述所有工作得很好.... 我的问题:我想通过改变重置网址重新使用这个模型,并调用取,但它不以某种方式更新网址。我曾尝试以下:
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
如何设置的URL,我的模型,这样我可以调用取(),它从更新的URL获取数据?我错过了什么。感谢您的任何指针..
更新1:基本上,我不能,如果我没有
model.set({url: 'new value'});
其次
model.fetch();
'模型' 得到更新的值是一个全局变量。创建'模型'的新实例作品:
model = new Model({url:'/some/other/url'});
model.fetch();
但是,按要求工作。这是否意味着模型实例永久连接到一个url并且无法重置?
对我的问题的回答在更新1中模型实例没有永久地连接到一个url。它可以动态重置。请仔细阅读@ tkone的详细解释,然后阅读@fguillens的解决方案以获得更好的理解。
你为什么要更改URL? REST风格的web服务背后的想法是,您的对象始终可用于相同的URL(具有特定对象所需的ID) – tkone 2012-07-27 19:29:14