RactiveJS动态变量名称

时间:2014-08-23 09:16:45

标签: ractivejs

如果我能以某种方式在模板中使用动态变量名,我很好奇。例如,我有一个循环,虽然我的游戏中有一种单位:

{{# config.units:unit }}
    <input type="text" id="unit_{{unit}}" class="toTrain selectable" value="" placeholder="0" />
{{/ config }}

例如,输入值应返回{{units_1}}的值,表示单位数量(类型1)。

我可以很容易地做一些外部对象并为每个对象存储单位数量但是,我想知道我是否可以保持数据绑定,因为模板中的某处将有一个总需要的资源,这些资源是用这些值计算的

唯一的解决方案&#34;进入我脑海的是摆脱循环并手动在模板中写入单位。但是,当单位发生变化时,我还需要更改模板,并且..一个单元的真实模板结构比这个单元格略大。

示例:

<input value="{{units_1}}" />
<input value="{{units_2}}" />

我正在寻找类似的东西:

<input value="{{'units_'+unit}}" />

这显然不起作用,甚至不应该以这种方式工作。但是,那就是为什么我在这里?提出问题。

问候!

1 个答案:

答案 0 :(得分:2)

尝试使用write getUnit函数:

{{# config.units:unit }}
    <input type="text" id="{{ getUnit(unit) }}" class="toTrain selectable" value="" placeholder="0" />
{{/ config }}

组件:

Ractive.extend({
  init:function(){
        self.set("getUnit", function (id) {
            return self.get("config.units.unit_"+id);
        });
  }
})