我写了以下代码:
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();
});
在这里,我尝试实现 parentFetch 函数,在其中设置模型的 this.urlRoot 变量。但是,由于某种原因,获取使用了 urlRoot 的旧值,该值设置为默认值。
为什么 this.set("urlRoot", ...) 不会改变它的值?我还打印了控制台输出:
console.log("debug output" + this.urlRoot + ":" + this.get("urlRoot"));
输出显示:调试输出/cgi-bin/hello1.pl:/cgi-bin/yoman.pl
这里有什么问题以及如何解决?