如何访问 Meteor 空格键中的变量引用数组元素?

How can I access a variable-referenced array element in Meteor spacebars?

spacebars 模板中,我有一个 javascript 数组 x 和一个索引 i,例如

Template.test.helpers({
    'foo': function() {
        return {
            x: ['aa','bb','cc'],
            i: 1
        }
    }
});

我可以使用 {{ x.[1] }}:

访问模板中 x 的固定元素
{{template name="test"}}
    {{#with foo}}
        {{x.[1]}}
    {{/with}}
{{/template}}

但是{{ x.[i] }}不起作用。

如何访问 x[i]?谢谢!

一个解决方案是定义一个自定义助手:

Template.test.helpers({
    'getElement': function(a, i) {
        return a[i];
    }
});

然后在模板中,使用:

{{ getElement x i }}

有了这样一个基本的例子,我认为你的帮助解决方案是最直接的;然而,目标应该始终是将逻辑从视图层移开(助手和 html),这就是为什么如果空格键看起来有限制,它只是一个温和的重构提醒。

对于更复杂的问题,更简洁的方法可能是在需要在模板中使用 x[i] 之前解析它,或者将 x 转换为对象。例如,将 x[i] 保存到数据上下文或模块对象并直接访问它。当您在一个月内重新访问代码时,通过数组索引引用事物会让生活变得糟糕...