2013-02-21 3 views
3

У меня есть Backbone коллекция как так:Параметры настройки по умолчанию для Backbone Коллекции

var ThreadCollection = Backbone.Collection.extend({ 
    url: '/api/rest/thread/getList' 
}); 
var myCollection = new ThreadCollection(); 

А потом я его извлечения с сервера, используя объект данных для добавления параметров запроса (так что в данном случае речь идет о из '/ апи/отдых/нить/GetList? = 487343 идентификатор пользователя')

myCollection.fetch({ 
    data: { 
    userId: 487343 
    } 
}) 

Есть и другие параметры, которые я, возможно, захотите использовать вместо USERID (GroupID, orgId и т.д.), но я бы в идеале определить параметры данных при инициализации и с этого момента можно запустить fetch() без указания. Что-то вроде этого:

var myCollection = new ThreadCollection({ 
    data: { 
    userId: 487343 
    } 
}); 

myCollection.fetch() 

но он не работает. Кто-нибудь знает, есть ли способ сделать это? Благодаря!

ответ

6

Один из способов определить метод пользовательских fetch на вашей коллекции, которая вызывает супер fetch метод с некоторыми перегружаемых по умолчанию:

var ThreadCollection = Backbone.Collection.extend({ 
    url: '/api/rest/thread/getList', 
    fetch: function(options) { 
     return Backbone.Collection.prototype.fetch.call(this, _.extend({ 
      data: { 
       userId: 48743 
      } 
     }, options)); 
    } 
}); 

var myCollection = new ThreadCollection(); 

myCollection.fetch(); 
+0

Спасибо! Это именно то, о чем я думал, и отлично работает! –

Смежные вопросы