使用 dust.js 中的变量访问对象 属性

Access object property using variable in dust.js

{#access_map.modifiable_objects}
    <div class='col-md-2 col-xs-4'> 
        <i class="fa {icon}"> </i>
        <span> {name} </span>
        {#mods}
            {>"dust/admin/helpers/form-checkbox" name="{form_name}" label="{display_name}" value="{value}"/}
            <p> {data.powers.{id}} </p>
        {/mods}
    </div>
{/access_map.modifiable_objects}

我上面有下面的代码。

注意如何使用 {data.powers.{id}}。我的真正意图是做类似的事情:data.powers[<id_name_here>]data.powers.<id_name_here>;

但是,它呈现一个字符串。但是,ID 的范围 SURELY 达到了我使用它的那部分。有什么建议吗?

Dust 目前本身不支持变量替换。你可以写一个小帮手来做你想做的事。

dust.helpers.get = function(chunk, context, bodies, params) {
  var key = context.get(context.resolve(params.key));
  return chunk.reference(key, context);
};

然后你可以像这样使用助手:

{@get key="data.powers.{id}" /}

如果 idfoo,这将输出 data.powers.foo 的值。

抱歉,我得到了答案。

应该是{data.powers[id]}而不是data.powers[{id}];有效。