[英]Falcor Router not resolving $ref
我在路由器上定義了以下路徑:
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);
});
“項目”路由返回對每個單獨項目的引用,但是當我發出以下請求時,我的響應未定義 :
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'路由執行第二次命中,但這絕不會觸發。
我有類似的問題,也許會有所幫助。
我將舉一個例子,說明我過去如何解決它:
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: 'articlesById[{keys}]["_id","title"]',
// striped
articleResObj.title = "WE HAVE TITLE HERE"; // make sure of this when returning
results.push({
path: ['articlesById', currentIdString],
value: articleResObj
});
如您所見,我已經刪除了上面的[“ title”] ...,還必須確保在返回數據時,在articlesById中具有此“ title”,因此:
{ 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 });
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.