2013-02-21 26 views
3

我有一個骨幹集合,像這樣:爲骨幹集合設置默認選項

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

然後我從服務器使用數據對象追加查詢參數獲取它(所以在這種情況下,它涉及出 '/ API/REST /線程/的GetList?用戶id = 487343')

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

有跡象表明,我可能要使用的,而不是用戶ID(的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

謝謝!這正是我想到的,並且非常棒! – 2013-02-21 21:25:22