如何在 Falcor 中查找单个项目
How to lookup a individual item in Falcor
我无法弄清楚如何构建用于检索个人记录的路径。例如,假设我有这些路线:
itemsById[{integers:itemIds}]["id"]["name"]
userItems[{integers:itemIndices}]
所以,userItems
路由在itemsById
路由中查找相关的item数据。这对于我的应用程序的 list 视图来说很好,但是,我不确定如何为 show 视图(显示单个项目)。
我想如果我在 list 视图中,我可以存储用户单击的项目的索引,然后在 itemsById
路由中查找该索引但是用户可能会直接浏览到 show 查看路线,这意味着我无法知道 itemsById
索引。
我想我可以定义一条通往 return 单个项目的路线:
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')
。然后从那条路线你会 return 像这样的对象数组:
{
path: [ 'itemsByIndex', 0 ],
value: { $type: 'ref', value: [ 'itemsById', '7bca23' ] }
}
Falcor 将在同一请求期间跳转到 itemsById
路由以提供请求的图形片段的其余部分。
我无法弄清楚如何构建用于检索个人记录的路径。例如,假设我有这些路线:
itemsById[{integers:itemIds}]["id"]["name"]
userItems[{integers:itemIndices}]
所以,userItems
路由在itemsById
路由中查找相关的item数据。这对于我的应用程序的 list 视图来说很好,但是,我不确定如何为 show 视图(显示单个项目)。
我想如果我在 list 视图中,我可以存储用户单击的项目的索引,然后在 itemsById
路由中查找该索引但是用户可能会直接浏览到 show 查看路线,这意味着我无法知道 itemsById
索引。
我想我可以定义一条通往 return 单个项目的路线:
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')
。然后从那条路线你会 return 像这样的对象数组:
{
path: [ 'itemsByIndex', 0 ],
value: { $type: 'ref', value: [ 'itemsById', '7bca23' ] }
}
Falcor 将在同一请求期间跳转到 itemsById
路由以提供请求的图形片段的其余部分。