2014-09-04 69 views
0

我有以下的骨幹收集代碼:骨幹收集提取選項不影響GET請求

AssessmentSlos = Backbone.Collection.extend({ 
     url: "mapping", 

     db: { 
     view: "slosByAssessmentId" 
     }, 
     fetch: function(options) { 
     options = {}; 
     options.data ={}; 
     options.data.date = "2013-10"; 
     return Backbone.Collection.prototype.fetch.call(this, options); 
     } 
    }); 

代碼初始化和調用的抓取這個

c = new AssessmentSlos(); 
c.fetch(); 

預期/正確的URL請求應該是這樣的這一個

http://localhost:5984/tangerine/_design/tangerine/_view/slosByAssessmentId?date=2011-10 

但是當我檢查我得到這個:

http://localhost:5984/tangerine/_design/tangerine/_view/slosByAssessmentId?cacheBuster=126 

爲什麼我的日期查詢未顯示在URL查詢中? 我遵循這個簡單的指南http://japhr.blogspot.in/2011/10/overriding-url-and-fetch-in-backbonejs.html

根據指導,這段代碼應該工作。我的錯誤是什麼?

+0

嘗試替換此代碼options.data = {date:this.date};與這一個 - options.data.date = this.date; – booleanhunter 2014-09-04 19:07:43

+1

'this.date'是'undefined',所以它不會作爲參數傳遞。 – 2014-09-04 20:48:51

+0

只需將'date'屬性添加到您的集合中,並確保它已設置,[here](http://jsfiddle.net/6wup7q9e/1/)我添加了'date',並且可以在GET請求中看到它。 – 2014-09-04 20:50:03

回答

1

這個問題不是骨幹網,它是改變我的獲取參數的backbone-couchdb連接器,所以爲了實現它,我將查詢添加到集合類的「db」對象中,例如在按鍵上獲取將如下所示

AssessmentSlos = Backbone.Collection.extend({ 
     url: "mapping", 

     db: { 
     view: "slosByAssessmentId" 
     ,keys: ["2013-10"] 

     }, 
     fetch: function(options) { 
     options = {}; 
     options.data ={}; 
     options.data.date = "2013-10"; 
     return Backbone.Collection.prototype.fetch.call(this, options); 
     } 
    });