如何在Meteor空间栏中访问变量引用的数组元素?

时间:2015-06-01 01:16:18

标签: javascript templates meteor spacebars

spacebars模板中,我有一个javascript数组x及其中的索引i,例如。

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

我可以使用x访问模板中{{ x.[1] }}的固定元素:

{{template name="test"}}
    {{#with foo}}
        {{x.[1]}}
    {{/with}}
{{/template}}

{{ x.[i] }}无效。

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

2 个答案:

答案 0 :(得分:2)

一种解决方案是定义自定义帮助程序:

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

然后在模板中,使用:

{{ getElement x i }}

答案 1 :(得分:0)

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

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