2016-08-05 23 views
0

Ich bin ein Neuling in Backbone und Marionette, ich bin so verwirrt, wenn ich versuche, eine Backbone Collection aufzurufen und sie in ein Array umzuwandeln.Backbone Marionette Eine Sammlung zu einem Array holen

Es ist meine Sammlung-Code

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(); 
    }) 


}) 

Und hier ist ein Teil Code aus einer anderen Datei der Sammlung

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

Es ist nicht Fehler zu verlangen, aber ich verwirrt ein wenig damit. Ich versuche dataChart.get("tanggal") zu machen, aber es zurückgeben undefined

Ich versuche, die Sammlung in dieses Format zu bekommen und holen aber ich kann nicht

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'] 

So verwirrt. Bitte, bitte hilf mir.

Antwort

0

Angenommen, Sie erhalten die Auflistung Property in Ihrer DataChart-Variable. Da Sie in Ihrem initializeData einem neuen Objekt vom Typ Program.salesC ein Array mit vier Mitgliedern hinzufügen, enthalten Ihre Daten vier Modelle vom Typ Program.salesM. Um das gewünschte Ergebnis Sie

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

Der Code gibt data in getData Funktion folgende verwenden sollten, bekommen zu bekommen und es ist eine Backbone-Sammlung, die in dataChart Variable gespeichert wird schließlich.

Wenn man sich die Backbone Collection Documentation aussehen würden Sie sehen, dass:

Kollektionen sind Sätze von Modellen bestellt.

get Verfahren der Sammlung gibt das Modell mit den angegebenen id im Parameter von get.

Nun, wenn Sie würde versuchen, dataChart.get("tanggal") zuzugreifen, werden Sie nicht bekommen, was Sie suchen, wie dataChart eine Sammlung ist und tanggal ist ein Attribut des Modell in der Sammlung.

Möglicherweise müssen Sie Ihren Code neu zu strukturieren, basierend auf Ihre Bedürfnisse, aber lassen Sie uns sagen, wenn Sie wirklich die tanggal Eigenschaft des Modells zugreifen möchten, können Sie dataChart.at(0).get('tanggal') tun können, wo 0 ist die index des Modells in der Sammlung . Oder Sie können these underscore methods für die Sammlung verfügbar verwenden.