2016-04-14 4 views
1

Каков наилучший способ приблизиться к статистике спортивных сезонов с помощью маршрутизатора Falcor и Falcor?Получение статистики сезона с помощью Falcor

Моего источник данных для данных сезона выходов, который выглядит следующим образом:

{ id: 'recNMJfs4sqiJshna', 
    fields: { 
    Wins: 23, 
    Losses: 51, 
    Team: [ 'reckEYqAz3r8pUtUg' ], 
    ... 
} 

Мои идентификаторы являются GUID, и у меня есть маршрутная работа teamsById, которая возвращает сезон GUID. Однако, чтобы попытаться предотвратить много дублирующих маршрутов и код, который я пытаюсь создать seasonsIndex маршрут, который будет выглядеть примерно так:

seasonIndex[0..10][year] or [seasonIndex[0..10]["2016"] 

Где можно выбрать данные, которые в источнике данных сезон для конкретный год. Надеясь я могу создать такой вывод:

seasonIndex: { 
    teamGuid: { 
     2016: { 
     Wins: 23, 
     Losses: 51, 
     ... 
     }, 
     2015: { 
     ... 
     } 
    }, 
    ... 
}, 
teamById: { 
    teamGuid: { 
     Name: Team Name 
    } 
} 

Я есть проблема, выясняя маршруты мне нужно, чтобы построить эту модель ответ. Потому что я не уверен, как получить данные из источника данных разных сезонов и связать их с уникальными командами, и по-прежнему сможет ссылаться на определенные значения в данных сезона, таких как «Победы», «Убытки» или «Процент выигрыша».

ответ

1

Вам нужно построить маршрут по полю, который вы хотите открыть. Например, для wins поле:

{ 
    route: "seasonIndex[{keys:teams}][{keys:years}].wins", 
    get(pathSet) { 
     const results = [] 
     for (team of pathSet.teams) { 
      for (year of pathSet.years) { 
       const wins = ... // get the wins for that team and year from the data source 
       results.push({ 
        path: ["seasonIndex", team, year, "wins"], 
        value: wins 
       }) 
      } 
     } 
    } 
} 

Маршрут для wins и маршрут для losses, вероятно, будет в конечном итоге подобное, так что вы можете быть в состоянии свернуть их так:

{ 
    route: "seasonIndex[{keys:teams}][{keys:years}][{keys:property}]", 
    get(pathSet) { 
     const results = [] 
     for (team of pathSet.teams) { 
      for (year of pathSet.years) { 
       for (property of pathSet.properties) { 
        const value = ... // get the value of the property for that team and year from the data source 
        results.push({ 
         path: ["seasonIndex", team, year, property], 
         value 
        }) 
       } 
      } 
     } 
    } 
} 
Смежные вопросы