2014-10-09 41 views
0

我的模型阵列的样子:使用动态变量名中的灰尘JS

var model = { 
    tagTypes : ["product", "location"], 
    cards : [{ 
     title : "Card 1", 
     product : ["prod1"], 
     location : ["US", "UK"] 
    }, 
    { 
     title : "Card 2", 
     product : ["prod2"], 
     location : ["UK"] 
    }] 
}; 

我越来越字段(这是一个动态列表&它可能会因响应变化)对我的“卡”(即产品&位置在这种情况下)作为一个数组(tagTypes)

我想循环这些字段的元素一个接一个。我能够使用当前的灰尘模板以序列化的形式获取这些列表。但我想实际上遍历每个单独的元素,以便我可以在它们之间添加一些额外的html。

电流粉尘模板:

{#cards} 
    {title} | 
    {#tagTypes card=.} 
     {card[.]} 
    {/tagTypes} 
    <br/> 
{/cards} 

电流输出:

Card 1 | product: [prod1] location: [US,UK] 
Card 2 | product: [prod2] location: [UK] 

需要的输出(天):

Card 1 | product: <span class="tag">prod1</span> location: <span class="tag">US<span> <span class="tag">UK</span> 
Card 2 | product: <span class="tag">prod2</span> location: <span class="tag">UK</span> 

参见:http://jsfiddle.net/74nw7dm3/5/用于与上述代码实验。

回答

0

问题是由于使用的散列的并且在单个灰尘标签点一起(其灰尘不会载体)

为了解决这个我用在我的模型&创建的段与参数可用一个标量是指我的对象所需的关键。这消除了使用点运算符,它使我能够安全地使用散列。

模型

var model = { 
    tagTypes : ["product", "location"], 
    garbage : "foo", 
    cards : [{ 
     title : "Card 1", 
     product : ["prod1"], 
     location : ["US", "UK"], 
    }, 
    { 
     title : "Card 2", 
     product : ["prod2"], 
     location : ["UK"] 
    }] 
}; 

工作模板:

{#cards} 
    {title} | 
    {#tagTypes card=.} 
     {.}: 
     {#garbage tagType=.} 
     {#card[tagType]} 
      <span> {.} </span> 
     {/card[tagType]} 
     {/garbage} 
    {/tagTypes} 
    <br/> 
{/cards} 

工作的jsfiddle:http://jsfiddle.net/74nw7dm3/7/