2013-01-24 98 views
2

我正在尋找一種方式來調用我的灰塵模板文件中的動態密鑰,像 動態密鑰名稱中Dust.js

<table> 
{#array1} 
<tr> 
    {#array2} 
    <td>{#array1}{object.#dynAttrName#}{/array1}</td> 
    {/array2} 

{/array1} 
</table> 

我想獲得類似「object.attribute1 「其中1是{array1}中當前對象的標識。 (array1 [n] .id)

謝謝你的幫助!

+0

這與另一個[灰塵問題]非常相似(http://stackoverflow.com/questions/14462903/indirection-in-dust-js/14465766#14465766)。可悲的是,答案似乎是,這在塵埃中是不可能的。 – smfoote

+0

謝謝我沒有看到這一個。太悲傷,我們不能這樣做,我會盡力找到另一種方式 – al3x

+0

我會按照Github回購,因爲這個功能可能會到來。 – smfoote

回答

4

它可以通過添加輔助函數的上下文對象來完成:

上下文對象:

{ 
    get: function (chunk, context, bodies, params) { 
     var obj = dust.helpers.tap(params.ofObj, chunk, context); 
     var prop = dust.helpers.tap(params.prop, chunk, context); 
     return chunk.write(obj[prop]); 
    }, 

    a: { 
     b: "bbb" 
    } 
} 

模板

{#get prop="b" ofObj=a/} 

可以在linkedin dust tester試試這個

我相信它也可以定義一個全球防塵助手。

+1

這樣一個常見的用例,我不得不做同樣的事情。我很驚訝/失望的是,灰塵並沒有將它作爲內置的幫助程序或內置語法。想象一下,所有期望這種簡單/基本js特徵的不同人都浪費了所有的時間。 – miir