我是Backbone和Marionette的新手,在尝试调用Backbone Collection并将其转换为数组时,我感到很困惑。
这是我的收藏代码
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 :(得分:0)
假设您正在使用dataChart变量中的propwrly。 由于在initializeData中,您将向Program.salesC类型的新对象添加四个成员的数组,因此您的数据将包含四个类型为Program.salesM的模型。 为了获得您想要获得的结果,您应该使用以下
var tanggal = dataChart.pluck('tanggal');
var jumlah = dataChart.pluck('jumlah ');
答案 1 :(得分:0)
代码在data
函数中返回getData
,它是一个主干集合,最终存储到dataChart
变量中。
如果您查看Backbone Collection Documentation,您会看到:
集合的集合是有序的模型集。
get
方法返回参数id
中具有指定get
的模型。
现在,如果您尝试访问dataChart.get( "tanggal" )
,则无法获得所需内容,因为dataChart
是集合和{{1} }是集合中模型的属性。
您可能需要根据自己的需要重新构建代码,但是如果您确实想要访问模型的tanggal
属性,则可以执行tanggal
,其中{{1} }}是集合中模型的dataChart.at( 0 ).get( 'tanggal' )
。或者您可以使用该集合可用的these underscore methods。