2016-08-05 79 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可用于收藏。