【问题标题】:How to present sort order-by query in Falcor?如何在 Falcor 中呈现排序查询?
【发布时间】:2016-09-30 06:08:00
【问题描述】:

假设模型结构为

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

我们的存储中可能有很多事件。在客户端,我们要发出一个查询以按日期升序获取 10 个事件

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

【问题讨论】:

    标签: falcor falcor-router


    【解决方案1】:

    这就是我要做的:首先,将您的事件推广到实体,即给它们 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] } ] } }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多