我有一个Backbone集合,其URL取决于initialize函数。当我创建这个Backbone集合的实例时,我传入一个ID来过滤模型的哪些实例出现。以下是集合代码的样子:
var GoalUpdateList = Backbone.Collection.extend({
// Reference the Goal Update model
model: GoalUpdate,
// Do HTTP requests on this endpoint
url: "http://localhost:8000/api/v1/goal_update/?goal__id=" + this.goal_id + "&format=json",
// Set the goal ID that the goal update list corresponds to
initialize: function(goal_id) {
this.goal_id = goal_id;
console.log(this.goal_id);
console.log(this.url);
},
});
当然,这不起作用。 this.goal_id
被视为未定义。我猜是因为在初始化函数运行之前设置了URL。
答案 0 :(得分:4)
您可以使用动态构建URL的url
函数。
url: function() {
return "http://localhost:8000/api/v1/goal_update/?goal__id=" + this.goal_id + "&format=json";
},