2016-08-05 2 views
0

Je suis un débutant dans Backbone et Marionette, je suis tellement confus quand essayer d'appeler une collection Backbone et le convertir en tableau.Marionette Backbone chercher une collection à un tableau

Il est mon Code 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(); 
    }) 


}) 

Et voici un code partiel d'un autre fichier pour demander la collection

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

Il est l'erreur, mais je confondre un peu avec ça. J'essaie de faire dataChart.get("tanggal") mais retour non défini

J'essaie d'obtenir et de chercher la collection dans ce format mais je ne peux pas

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

si confus. S'il vous plaît, aidez-moi.

Répondre

0

En supposant que vous obtenez la collection proprement dans votre variable dataChart. Puisque dans votre initializeData vous ajoutez un tableau de quatre membres à un nouvel objet de type Program.salesC, vos données contiendront quatre modèles de type Program.salesM. Afin d'obtenir le résultat que vous voulez vous obtenir devez utiliser suivant

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

Le code retourne data en fonction getData et c'est une collection de colonne vertébrale, ce qui a finalement stocké dans obtient variables dataChart.

Si vous regardez le Backbone Collection Documentation vous verrez que:

Les collections sont ensembles ordonnés de modèles.

méthode get de la collection renvoie le modèle avec la id spécifié dans le paramètre de get.

Maintenant, si vous essayez d'accéder dataChart.get("tanggal"), vous ne serez pas obtenir ce que vous cherchez, comme dataChart est une collection et tanggal est un attribut du modèle dans la collection.

Vous pourriez avoir à re-structurer votre code en fonction de vos besoins, mais disons que si vous voulez vraiment accéder à la propriété tanggal du modèle, vous pouvez le faire dataChart.at(0).get('tanggal'), où 0 est le index du modèle dans la collection . Ou vous pouvez utiliser these underscore methods disponible à la collection.