Backbone集合的URL取决于初始化函数

时间:2012-04-03 23:19:40

标签: javascript backbone.js

我有一个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。

1 个答案:

答案 0 :(得分:4)

您可以使用动态构建URL的url函数。

url: function() {
  return "http://localhost:8000/api/v1/goal_update/?goal__id=" + this.goal_id + "&format=json";
},