Je tente de construire une matrice interactive d'un calendrier sportif d'équipe où les rangées sont chaque équipe, et les colonnes sont chaque semaine. Il s'agit d'un pool de survivants où les utilisateurs ne sont autorisés à choisir qu'un gagnant par semaine et chaque équipe une seule fois par an. Par conséquent, lorsqu'un utilisateur clique sur un jeu donné, la colonne associée et doit être désactivée. Je suis nouveau à NoSQL, donc je ne suis pas sûr de savoir comment interagir avec les jeux par équipe et par semaine.Comment accéder aux mêmes données Firebase par deux index différents?
Sine J'utilise Firebase mon back-end, j'ai commencé avec une structure de fichier .json
avec un $firebaseArray
de teams
chacun avec un schedule
imbriqué comme ceci:
{
"teams": {
"California": {
"slug": "california",
"chosen": false,
"schedule": [
{
"week": 1,
"opponent": "Grambling St",
"selected": false,
"available": true
},
{
"week": 2,
"opponent": "San Diego St",
"selected": false,
"available": true
},
{
"week": 3,
"opponent": "at Texas",
"selected": false,
"available": true
},
{
"week": 4,
"opponent": "at Washington",
"selected": false,
"available": true
},
{
"week": 5,
"opponent": "Washington St",
"selected": false,
"available": true
},
{
"week": 6,
"opponent": "at Utah",
"selected": false,
"available": true
},
{
"week": 7,
"opponent": "Bye",
"selected": false,
"available": true
},
{
"week": 8,
"opponent": "at UCLA",
"selected": false,
"available": true
},
{
"week": 9,
"opponent": "USC",
"selected": false,
"available": true
},
{
"week": 10,
"opponent": "at Oregon",
"selected": false,
"available": true
},
{
"week": 11,
"opponent": "Oregon St",
"selected": false,
"available": true
},
{
"week": 12,
"opponent": "at Stanford",
"selected": false,
"available": true
},
{
"week": 13,
"opponent": "Arizona St",
"selected": false,
"available": true
}
]
},
"Oregon": {
"slug": "oregon",
"chosen": false,
"schedule": [
{
"week": 1,
"opponent": "EWU",
"selected": false,
"available": true
},
{
"week": 2,
"opponent": "at Michigan St",
"selected": false,
"available": true
},
{
"week": 3,
"opponent": "Georgia St",
"selected": false,
"available": true
},
{
"week": 4,
"opponent": "Utah",
"selected": false,
"available": true
},
{
"week": 5,
"opponent": "at Colorado",
"selected": false,
"available": true
},
{
"week": 6,
"opponent": "Washington St",
"selected": false,
"available": true
},
{
"week": 7,
"opponent": "at Washington",
"selected": false,
"available": true
},
{
"week": 8,
"opponent": "Bye",
"selected": false,
"available": true
},
{
"week": 9,
"opponent": "at Arizona St",
"selected": false,
"available": true
},
{
"week": 10,
"opponent": "California",
"selected": false,
"available": true
},
{
"week": 11,
"opponent": "at Stanford",
"selected": false,
"available": true
},
{
"week": 12,
"opponent": "USC",
"selected": false,
"available": true
},
{
"week": 13,
"opponent": "Oregon St",
"selected": false,
"available": true
}
]
},
j'étais facilement en mesure de construire la table via un ng-repeat="team in teams"
au niveau de la ligne et un autre game in team.schedule
au niveau td
. Définir le team.chosen
associé à true
marque la ligne inactive, mais je ne suis pas sûr de savoir comment faire la même chose par semaine (colonne).
========
j'ai décidé de donner un autre essai avec une structure de données différentes, cette fois briser le games
sortir dans sa propre table séparée de teams
comme ceci:
{
"teams": {
"California": {
"chosen": false,
"slug": "california"
},
"Oregon": {
"chosen": false,
"slug": "oregon"
},
"Oregon St": {
"chosen": false,
"slug": "oregon-st"
},
"Stanford": {
"chosen": false,
"slug": "stanford"
},
"Washington": {
"chosen": false,
"slug": "washington"
},
"Washington St": {
"chosen": false,
"slug": "washington-st"
}
},
"games": {
"one": {
"Stanford": "at Northwestern",
"Washington": "at Boise St",
"California": "Grambling St",
"Oregon": "EWU",
"Oregon St": "Weber St",
"Washington St": "Portland St"
},
"two": {
"Stanford": "UCF",
"Washington": "Sacramento St",
"California": "San Diego St",
"Oregon": "at Michigan St",
"Oregon St": "at Michigan",
"Washington": "at Rutgers"
},
"three": {
"Stanford": "at USC",
"Washington": "Utah St",
"California": "at Texas",
"Oregon": "Georgia St",
"Oregon St": "San Jose St",
"Washington": "Wyoming"
}
}
}
Cela n'a pas fonctionné mieux car je ne suis pas capable d'atteindre la valeur de l'objet de jeu à l'intérieur d'un ng-repeat de weeks
.
Je soupçonne qu'il me manque quelque chose structurant ces données dans Firebase. Toute aide est très appréciée.