2012-09-23 71 views
1

在Metoer應用中,mongodb集合包含描述項目的文檔。他們在人員,職稱和其他事實方面差異很大。將複雜的Mongo文檔渲染到流星應用中的模板中

當用戶從側邊欄列表中選擇項目時,我想將文檔中的所有信息都渲染爲反應模板。

側邊欄列表可能是這樣的:

  • 布魯克林大橋
  • 胡佛水壩艾弗爾

的胡佛大壩蒙戈文件看起來像這樣:

{ 
"_id": "dksld888-aaaa-12345", 
"name" : "Hoover Dam", 
"year_built" : 1931, 
... other facts... 
"architects" : 
    [ 
     { 
      "person_id" : "1a2d528c-6509-4c3a", 
      "title" : "Lead Designer" 
     }, 
     { 
      "person_id" : "4a3d-81e0-5a3f-2343", 
      "title" : "Assistant" 
     } 
    ] 
... other job descriptions... 
} 

person_id字段包含另一個集合中條目的ObjectID,該條目擁有關於該人的更多詳細信息。

該系統旨在允許用戶從項目名稱深入到項目詳細信息到人員詳細信息(或激活項目詳細信息模板中的數據編輯)。

我很難過如何將項目詳細信息文檔渲染爲反應模板(遞歸循環和向下鑽取文檔)。如果我做錯了,我也很樂意改變項目集合的結構。

任何想法將非常感激。

回答

1

首先,製作一個呈現項目的模板。然後在側欄上設置一個事件監聽器,以便當用戶單擊某個項目時,會設置一個包含當前項目ID的Session值。讓項目模板監聽Session值以繪製相應的項目。

在項目模板中,使用{{#each person}}創建一個人員列表,然後讓該模板在項目中繪製人員。你應該寫一個方便的方法,通過給定的person_id來獲取這個人。

我會將代碼添加到我的答案中,但這裏有很多事情要做,所以如果您無法弄清楚,請指定您遇到的問題,然後嘗試提供幫助。