Sto tentando di eseguire il rendering di una matrice di matrici di oggetti con un modello di baffi in javascript e non ho trovato nessun altro che abbia fatto questa domanda. Riesco a rendere una matrice di oggetti bene, ma non riesco a capire come renderne un array. Potrei assegnare ogni array annidato alla sua variabile, suppongo, ma potrebbero esserci un numero qualsiasi, quindi ho davvero bisogno di mantenerli come array.Come rendere array di matrici di oggetti con i baffi
Qui è il tipo di dati devo rendering:
[
[
{ id: 12345, name: "Billy" },
{ id: 23456, name: "Joe" },
{ id: 34567, name: "Jenny" }
],
[
{ id: 45678, name: "Amy" },
{ id: 56789, name: "Julie" },
{ id: 67890, name: "Sam" }
]
]
L'array esterno potrebbe contenere qualsiasi numero di matrici nidificate, e ciascuna matrice nidificata può contenere qualsiasi numero oggetti.
Non so se è possibile con i baffi. Ho provato ad usare una funzione, e questa è la prima volta che uso una funzione con i baffi, quindi forse sto facendo qualcosa di sbagliato. Lo chiamo dalla funzione di rendering di una vista backbone. L'array di matrici (mostrato sopra) fa parte degli attributi del modello della vista. Quindi ecco quello che ho provato.
render:
function()
{
this.model.attributes.getList =
function()
{
return function (str, func) { return 'What in the world should I return here?'; }
}
this.$el.html (Mustache.render ($ ('#detail-template').html(), this.model.attributes));
return this;
},
E qui è la sezione del mio modello in cui sto tentando di utilizzare la funzione.
{{#getList}}
{{name}}
{{/getList}}
Sono abbastanza sicuro {{nome}} non appartengono in là, ma non ho idea di cosa altro avrei messo in là.
Ho provato a restituire func (str), ma tutto ciò che è stato stampato era una lunga stringa che conteneva [oggetto Object], [oggetto Object], [oggetto Object], [oggetto Object], [oggetto Object], [oggetto Object ], [oggetto oggetto], [oggetto oggetto]
Non potevo usare quella stringa come oggetto json, era solo una stringa.
Sono un po 'nuovo sia per la spina dorsale che per i baffi, quindi ho pensato che qualcuno potesse avere una soluzione "best practice", o almeno potrebbe dirmi se è impossibile, quindi non sprecare altro tempo esso. Non ho potuto trovare una domanda simile ovunque su Internet.
non potresti semplicemente appiattire l'array? con la funzione di appiattimento del trattino basso? Btw. in là non si dovrebbe restituire "model.attributes" ma "model.toJSON()". – Luke
@Luke ha ragione, se stai usando i baffi allora farai praticamente tutti i tuoi dati che si azzuffano in JavaScript prima di avvicinarti al modello. –