2016-08-05 116 views
0

我是Backbone和Marionette的新手,當我嘗試調用Backbone Collection並將其轉換爲數組時,我感到非常困惑。Backbone Marionette將集合收集到數組

這是我收集代碼

programming.module("Program", function(Program, programming, Backbone, Marionette, $, _){ 
    Program.salesM = Backbone.Model.extend({ 
     defaults : { 

     } 
    }) 

    Program.salesC = Backbone.Collection.extend({ 
     model : Program.salesM 
    }) 

    var data; 
    var initializeData = function(){ 
     data = new Program.salesC([ 
      { 
       id : "1", 
       tanggal : "12/08/2016", 
       produk : "T-Shirt", 
       jumlah : "1" 
      }, 
      { 
       id : "2", 
       tanggal : "12/08/2016", 
       produk : "T-Shirt", 
       jumlah : "2" 
      }, 
      { 
       id : "3", 
       tanggal : "13/08/2016", 
       produk : "Case", 
       jumlah : "3" 
      }, 
      { 
       id : "4", 
       tanggal : "13/08/2016", 
       produk : "T-Shirt", 
       jumlah : "2" 
      }, 
     ]) 
    } 

    var API = { 
     getData : function(){ 
      if(data===undefined){ 
       initializeData(); 
      } 
      return data; 
     } 
    } 

    programming.reqres.setHandler("data:entities", function(){ 
     return API.getData(); 
    }) 


}) 

,這裏是另一個文件中的部分代碼,要求收集

var dataChart = programming.request("data:entities"); 
console.info(dataChart.get("tanggal") 

這不是錯誤,但我困惑了一下這一點。我儘量讓dataChart.get("tanggal")但它返回undefined

我試圖讓和獲取收集到這個格式,但我不能

var tanggal = ['tanggal on id 1','tanggal on id 2','tanggal on id 3'] 
var jumlah = ['jumlah on id 1','jumlah on id 2','jumlah on id 3'] 

如此混亂。請任何人幫助我。

回答

0

假設您正在使用dataChart變量獲取集合。 由於在initializeData中,您將四個成員的數組添加到Program.salesC類型的新對象中,因此您的數據將包含四個Program.salesM類型的模型。 爲了得到你想要得到你應該使用結果如下

var tanggal = dataChart.pluck('tanggal'); 
var jumlah = dataChart.pluck('jumlah '); 
0

的代碼返回getData功能data,這是一個收集骨幹,最終被存儲到dataChart變量。

如果你想看看Backbone Collection Documentation,你會發現:

類別的有序集合的模式。集合的

get方法返回的get參數與指定id模型。現在

如果你願意嘗試訪問dataChart.get("tanggal"),你不會得到你在找什麼,因爲dataChart收集tanggal是集合中的模型的屬性。

您可能必須重新構造根據您的需求你的代碼,但是我們要說,如果你真的想訪問該模型的tanggal屬性,你可以做dataChart.at(0).get('tanggal'),其中0是集模型的index 。或者您可以使用these underscore methods可用於收藏。