假设模型的结构为
{
events: [
{
date: '2016-06-01',
name: 'Children Day'
},
{
date: '2016-01-01',
name: 'New Year Day'
},
{
date: '2016-12-25',
name: 'Christmass'
}
]
}
我们的存储空间可能存在很多事件。从客户端,我们希望向按日期按升序排序获取10个事件。
如何在Falcor中展示这种查询?
答案 0 :(得分:2)
继承我要做的事情:首先,将您的事件提升为实体,即给他们提供ID:
id | date | name
1 | 2016-06-01 | Children Day
2 | 2016-01-01 | New Year Day
3 | 2016-12-25 | Christmass
然后通过id:
提供提供这些事件的路线route: 'eventsById[{integers:ids}]["date","name"]'
返回原始数据。现在,您可以为订单创建新路线
route: 'orderedEvents['date','name']['asc','desc'][{ranges:range}]
将引用返回到eventsById
路由。这样,您的客户端甚至可以在同一请求中请求以不同方式排序的相同数据!
router.get(
"orderedEvents.date.asc[0..2]",
"orderedEvents.date.desc[0..2]");
会返回
{
'eventsById': {
1: {
'date':'2016-06-01',
'name':'Children Day' },
2: {
'date':'2016-01-01',
'name':'New Year Day' },
3: {
'date':'2016-12-25',
'name':'Christmass' } },
'orderedEvents': {
'date': {
'asc': [
{ '$type':'ref', 'value':['eventsById',2] },
{ '$type':'ref', 'value':['eventsById',1] },
{ '$type':'ref', 'value':['eventsById',3] } ],
'desc': [
{ '$type':'ref', 'value':['eventsById',3] },
{ '$type':'ref', 'value':['eventsById',1] },
{ '$type':'ref', 'value':['eventsById',2] } ] } }
}