2016-06-01 82 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] } ] } } 
}