我在弄清楚如何构造用于检索单个记录的路由时遇到了麻烦。例如,假设我有以下路线:
itemsById[{integers:itemIds}]["id"]["name"]
userItems[{integers:itemIndices}]
因此,userItems
路线在路线中查找相关项目数据itemsById
。这对于我的应用程序的列表视图很好,但是,我不确定如何为显示视图(显示单个项目)定义路线。
我想如果我在列表视图中,则可以存储用户单击的项目的索引,然后在itemsById
路径中查找该索引,但是用户可能直接浏览到show view路径,这意味着我无法知道该itemsById
指数。
我当时想我可以定义一条返回单个物品的路线:
userItem[{integers:itemId}]
这条路线将itemId
用作参数,然后在中进行查找,itemsById
但这似乎并不正确,因为Falcor建议您不要使用ID。
我可能会错过一些东西。有谁知道这里的正确方法是什么?
我想你很亲密。据我了解,这将是您的单个商品查找路线:
itemsById[{keys:itemIds}][{keys:props}]
itemIds
将作为项目ID的数组传递到您的路由器。如果用户正在查看单个项目的详细信息视图,则浏览器的URL可能包含以下内容:/items/7bca23
。因此model.get('itemsById.7bca23.name')
,例如,在客户端上,您将获取该项目的名称。
同时,对于列表视图,您将具有以下路线:
itemsByIndex[{integers:indices}]
indices
将作为一系列数字传递到您的路由器。在客户身上你会做的model.get('itemsByIndex[0..20].name')
。然后从该路由返回一个对象数组,如下所示:
{
path: [ 'itemsByIndex', 0 ],
value: { $type: 'ref', value: [ 'itemsById', '7bca23' ] }
}
Falcor将itemsById
在同一请求期间跳到该路线,以提供其余所请求的图形片段。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句