2012-04-03 3 views
0

У меня есть базовая коллекция, чей URL-адрес зависит от функции инициализации. Когда я создаю экземпляр этой коллекции Backbone, я передаю идентификатор, чтобы фильтровать, какие экземпляры модели появляются. Вот как выглядит код коллекции:URL-адрес базовой линии зависит от функции инициализации

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-адрес установлен до запуска функции инициализации.

ответ

4

Вы можете использовать функцию для url, которая динамически создает URL-адрес.

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