2014-02-06 53 views
1

我正在使用Handlebars的jknack Java端口。我需要創建一個A-Z列表。地圖的關鍵是字母表中的一個字母。目前,我有這26小鬍子模板:將地圖中的值用作小鬍子模板地圖中其他值的關鍵字

{{#if A}}<li><a href="#a">A</a></li>{{else}}<li class="unused-letter">A</li>{{/if}} 

這將是很好的,我可以添加字母組成的數組下的鍵「鍵」的模式,例如,和遍歷結果如下:

{{#keys}} 
    {{#if .}}<li><a href="#a">{{.}}</a></li>{{else}}<li class="unused-letter">{{.}}</li>{{/if}} 
{{/keys}} 

但是,這並不檢查地圖是否具有與期間值匹配的關鍵字。

有沒有一種方法可以使用從地圖獲取的值作爲地圖中另一個對象的關鍵點?

更新的信息

看着馬克的入口,我可以看到我是從錯誤的方向接近的問題。如果信件沒有結果,我的模型在地圖中沒有條目。但是,如果我更新我的模型以便鍵(字母)具有空列表而不是沒有鍵/條目,那麼我可以只使用Map上的鍵,而不是嘗試使用另一個條目來提供可能代表所有值的值可能的鑰匙。

回答

1

我不知道你的索引數據格式的樣子,所以可以想象指數爲JSON格式如下:

{ 
    "items":[ 
     { 
     "A":[] 
     }, 
     { 
     "B":[ 
      "dummy", 
      "dummy", 
      "dummy" 
     ] 
     }, 
     { 
     "C":[] 
     }, 
     { 
     "D":[ 
      "dummy", 
      "dummy", 
      "dummy" 
     ] 
     }, 
     { 
     "E":[] 
     }, 
     { 
     "F":[ 
      "dummy", 
      "dummy", 
      "dummy" 
     ] 
     } 
    ] 
} 

現在通過使用顯示/未使用的索引將需要像一個模板來遍歷:

<ul> 
{{#items}} 
{{#each .}} 
{{#if .}} 
    <li><a href="#{{@key}}">{{@key}}</a></li> 
{{else}} 
    <li class="unused-letter">{{@key}}</li> 
{{/if}} 
{{/each}} 
{{/items}} 
</ul> 

這對於上面的例子中的數據將導致:

<ul> 
    <li class="unused-letter">A</li> 
    <li><a href="#B">B</a></li> 
    <li class="unused-letter">C</li> 
    <li><a href="#D">D</a></li> 
    <li class="unused-letter">E</li> 
    <li><a href="#F">F</a></li> 
</ul> 
+0

由於馬克。從你的回答中我可以看出我正在從錯誤的方向接近問題。如果信件沒有結果,我的模型在地圖中沒有條目。然而,如果我更新我的模型,使一個鍵(字母)有一個空列表(如你的例子),而不是沒有鍵/條目,那麼你的例子工作(如果一切都在「項目」的父鍵下。必須從HashMap更改爲LinkedHashMap,以便我可以按字母順序排列字母。 – MikeJ

相關問題