2016-06-01 53 views
2

假设模型的结构为如何在Falcor中查询排序顺序 - 查询?

{ 
    events: [ 
     { 
     date: '2016-06-01', 
     name: 'Children Day' 
     }, 
     { 
     date: '2016-01-01', 
     name: 'New Year Day' 
     }, 
     { 
     date: '2016-12-25', 
     name: 'Christmass' 
     } 
    ] 
} 

可能有很多我们的存储事件。从客户端,我们想发出一个查询获得10个事件顺序按日期升序

如何在Falcor中呈现这类查询?

回答

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] } ] } } 
}