私は次のコードを書きました:
var Parent = Backbone.Model.extend({
initialize: function() {
console.log("this is parent's init function");
},
defaults: {
name: "",
id: 0
},
parentFetch: function() {
this.set("urlRoot", "/cgi-bin/yoman.pl");
console.log("debug output" + this.urlRoot + ":" + this.get("urlRoot"));
this.fetch({
arg: "her",
success: function() {
console.log("fetch success");
},
error: function() {
console.log("fetch error");
}
});
},
urlRoot: "/cgi-bin/hello1.pl"
});
$(document).ready(function() {
console.log("this is ready function");
var myParent = new Parent();
myParent.parentFetch();
});
ここで、モデルの this.urlRoot 変数を設定しているparentFetch関数を実装しようとしています。ただし、何らかの理由で、フェッチはデフォルトで設定された urlRoot の古い値を使用します。
this.set("urlRoot", ...) が値を変更しないのはなぜですか? また、出力をコンソールに出力しました:
console.log("debug output" + this.urlRoot + ":" + this.get("urlRoot"));
出力は次のとおりです: debug output/cgi-bin/hello1.pl:/cgi-bin/yoman.pl
ここで何が問題で、どのように修正しますか?