2016-09-06 16 views
0

我已經廣泛地搜索了對此的答案,所以我希望我沒有錯過顯而易見的內容。查找運算符包含部分在把手上

我正在使用handlebar遍歷一個對象數組,並根據每個對象的屬性選擇一個局部視圖。

我已經看到了動態partials的文檔以及查找運算符和一些在線解釋,但我似乎無法理解...如何使用或與當前上下文相關。

我希望下面的代碼

{{#each data as |item|}} 
    {{> (lookup item 'type') }} 
{{/each}} 

尋找陣列中的每個對象上的類型屬性和包括部分具有該名稱,但查找的計算結果爲undefined

我已經看到了例子來說明這個代替

{{> (lookup . 'property') }} 

所以我的問題:

  1. 什麼是指item在查找正確的方式?
  2. 什麼...是指?

謝謝。

編輯:添加數據對象,從實際的代碼模板(數據對象將縮小與實際實體名稱變更爲「項」,但以其他方式實際的代碼)

從數據

{ 
    "_links": { 
     "self": { "href": "/item/342" } 
    }, 
    "itemId": "342", 
    "datetime": "2012-10-06T04:13:00+00:00", 
    "itemType": "ITEM_TYPE", 
    "content": { 
    } 
}, 

從模板

{{#each data as |item|}} 
    {{> (lookup item 'itemType') }} 
{{/each}} 

錯誤

{ 
    description: undefined, 
    fileName: undefined, 
    lineNumber: undefined, 
    message: "The partial undefined could not be found", 
    name: "Error"… 
} 
+0

你'#each'在我看來,就好像它應該工作。也許如果你分享了你的數據對象,我們可以找出問題所在。 '.'是'this'的別名,並指向當前的作用域對象。 '../'將父級作用域的對象指向一個級別。 – 76484

+0

@ 76484謝謝。這就是我對''和'..'的想法,但不知怎的,它似乎不適合我。我期待'item'或者'''可以通過正確的查找對象,但是它沒有。我添加了數據和錯誤消息。 – guioconnor

+0

深入挖掘,發現控制器在傳遞給模板之前過濾掉了數據字段。語法確實有效,但我必須重新映射'itemType'字段才能看到它。 – guioconnor

回答

1

找到了解決方案。如@ 76484所示:

.this的別名,並指向當前作用域對象。 ../將一個級別指向父作用域的對象。

例子中的查詢可以做到無論是

{{#each data as |item|}} 
    {{> (lookup item 'itemType') }} 
{{/each}} 

{{#each data}} 
    {{> (lookup . 'itemType') }} 
{{/each}}