【发布时间】:2016-05-17 01:50:53
【问题描述】:
我的路由器上定义了以下路径:
getProjectById[{keys:ids}][{keys:props}]
projects[{ranges:ranges}][{keys:props}]
在客户端,我可以通过以下查询成功检索单个项目:
model.get(
['getProjectById', 'ffd38a56-cca2-11e5-9e6a-695c9890612f', 'name'],
['getProjectById', 'ffd38a55-cca2-11e5-9e6a-695c9890612f', 'name']).then((data) => {
console.log('valid json response ->', data);
});
'projects' 路由返回对每个单独项目的引用,但是当我提出以下请求时,我得到 undefined 作为我的响应:
model.get(['projects', { from: 0, to: 2}, ['name', 'overview']]).then((data) => {
console.log('response is undefined ->', data);
});
服务器端点返回一个承诺,当它最终解决时,它包含以下路径数组:
[
{ path: ['projects', 0], value: { $ref(['getProjectById', 'ffd38a56-cca2-11e5-9e6a-695c9890612f'] }},
{ path: ['projects', 1], value: { $ref(['getProjectById', 'ffd38a55-cca2-11e5-9e6a-695c9890612f'] }},
{ path: ['projects', 2 ], value : { $atom(undefined) }
]
根据文档,这应该对传入标识符数组的 'getProjectById' 路由执行二次命中,但这永远不会被触发。
【问题讨论】:
-
更新我已经深入研究,似乎 Falcor 路由器只遍历缓存中的实际内容。我已经更新了 projects 端点,还为“getProjectById”返回了一个额外的路径和值,这可以解决这个问题。
-
根本问题归结为 projects[{ranges:ranges}][{keys:props}] 端点删除 [{key:props}] b> 解决了这个问题。
标签: falcor falcor-router