簡體   English   中英

Falcor路由器無法解析$ ref

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM