我的路由器上定义了以下路径:
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);
});
'项目'路由返回对每个项目的引用,但当我发出以下请求时,我得到 undefined 作为我的回复:
model.get(['projects', { from: 0, to: 2}, ['name', 'overview']]).then((data) => {
console.log('response is undefined ->', data);
});
服务器端点返回一个promise,当它最终解析时,它包含以下路径数组:
[
{ 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'路由执行次要命中,但这永远不会被触发。
答案 0 :(得分:0)
我有类似的问题,也许会有所帮助。
我将举一个例子,我过去如何解决它:
route: 'articlesById[{keys}]["_id","title"]',
第一个路线,包含$ ref(不工作):
route: 'articles[{integers}]["title"]',
get: (pathSet) => {
// striped
let articleRef = $ref(['articlesById', currentMongoID]);
return {
path: ['articles', index],
value: articleRef
};
}
固定:
从文章路线中删除[“title”],因此新工作是代码:
route: 'articles[{integers}]',
get: (pathSet) => {
// striped
let articleRef = $ref(['articlesById', currentMongoID]);
return {
path: ['articles', index],
value: articleRef
};
}
正如你所看到的,我已经删除了上面的[“标题”] ......你还必须确保在articlesById中,在返回数据时你有这个“标题”:
{
route: 'articlesById[{keys}]["_id","title"]',
// striped
articleResObj.title = "WE HAVE TITLE HERE"; // make sure of this when returning
results.push({
path: ['articlesById', currentIdString],
value: articleResObj
});