我有以下模型:
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'});
我使用这个全局变量“mod”从后端获取一些数据到这个模型中。
// fetch
mod.fetch({
success: function(){ ...},
error: ...
});
以上所有工作都很好......我的问题:我想通过更改重置url并调用fetch来重用这个模型,但它不会以某种方式更新url。我尝试了以下方法:
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,以便我可以调用 fetch() 并从更新的 url 中获取数据?我是不是错过了什么。感谢您的任何指点..
更新 1:基本上,如果我这样做了,我将无法获得更新的值
model.set({url: 'new value'});
其次是
model.fetch();
“模型”是一个全局变量。创建一个新的“模型”实例有效:
model = new Model({url:'/some/other/url'});
model.fetch();
但是,按要求工作。这是否意味着模型实例永久附加到 url 并且无法重置?
更新 1 中对我的问题的回答模型实例未永久附加到 url。它可以动态重置。请阅读@tkone 的详尽解释,然后阅读@fguillens 的解决方案以便更好地理解。