私は次のモデルを持っています:
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のリセットを変更してフェッチを呼び出すことでこのモデルを再利用したいのですが、どういうわけか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
fetch()を呼び出して、更新されたURLからデータをフェッチできるように、モデルのURLを設定するにはどうすればよいですか?私は何かが足りないのですか。ポインタをありがとう。
更新1:基本的に、更新した値を取得できません
model.set({url: 'new value'});
に続く
model.fetch();
「モデル」はグローバル変数です。'model'の新しいインスタンスを作成すると、次のように機能します。
model = new Model({url:'/some/other/url'});
model.fetch();
ただし、必要に応じて機能します。これは、モデルインスタンスが永続的にURLにアタッチされており、リセットできないことを意味しますか?
UPDATE1の質問への回答モデルインスタンスはURLに永続的に添付されていません。動的にリセットできます。理解を深めるために、@ tkoneの詳細な説明を読んでから、@fguillensのソリューションを読んでください。