J'ai cette application web qui suit la consommation quotidienne de nutriments à travers les aliments et les présente dans un calendrier soigné. Je suis nouveau à Backbone et j'essaye de structurer mes modèles et collections. Comment puis-je modéliser le JSON suivant dans Backbone Models/Collections?Structure des modèles backbone et des collections basées sur JSON
Est-ce que ce devrait être un aliments collection à l'intérieur d'un jour modèle?
{
response: [
{ // a random day
date: '1/1/2011',
totalCalories: 1000,
totalCarbs: 100,
totalProtein: 60,
totalFats: 30,
foods: [
{ // a food consumed in this day
datetime: '1/1/2011 17:30',
calories: 500,
proteins: 30,
carbs: 50,
fats: 15,
img: 'link_to_img'
},
{
datetime: '1/1/2011 19:30',
calories: 500,
proteins: 30,
carbs: 50,
fats: 15,
img: 'link_to_img'
}
]
},
{ // another day
date: '3/1/2011',
totalCalories: 1000,
totalCarbs: 100,
totalProtein: 60,
totalFats: 30,
foods: [
{
datetime: '3/1/2011 17:30',
calories: 500,
proteins: 30,
carbs: 50,
fats: 15,
img: 'link_to_img'
},
{
datetime: '3/1/2011 19:30',
calories: 500,
proteins: 30,
carbs: 50,
fats: 15,
img: 'link_to_img'
}
]
}
]
}
DaysCollection> Modèle> FoodsArray/FoodsCollection. Que les aliments devraient être une collection de matrice ou de backbone est jusqu'à votre application. Si vous n'avez pas besoin d'effectuer d'opérations liées au backbone, il ne doit pas nécessairement s'agir d'une collection. Notez que backbone ne prend pas en charge les collections ou modèles imbriqués. Vous devez donc gérer des événements comme la propagation d'événements si vous imbriquez des objets de backbone. Je vais laisser les aliments comme un tableau pour la simplicité –
J'ai écrit des réponses complètes sur [les différentes façons d'imbriquer des modèles et des collections] (https://stackoverflow.com/a/40823148/1218980), [traitant des attributs de modèle imbriqués] (https://stackoverflow.com/a/41701463/1218980), et [événements bouillonnants de modèles imbriqués et de collections] (https://stackoverflow.com/a/40532592/1218980). –