Javascript 如何访问Meteor Spacebar中的变量引用数组元素?
在一个模板中,我有一个javascript数组Javascript 如何访问Meteor Spacebar中的变量引用数组元素?,javascript,templates,meteor,spacebars,Javascript,Templates,Meteor,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
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 }}
有了这样一个基本的例子,我认为您的助手解决方案是最简单的;然而,我们的目标应该始终是将逻辑从视图层(helpers&html)移开,这就是为什么如果空格键看起来很有限,那么它只是一个温和的重构提醒 对于更复杂的问题,一种更简洁的方法可能是在需要在模板中使用x[i]之前解决它,或者将x转换为对象。例如,将x[i]保存到数据上下文或模块对象并直接访问它。当你在一个月内重温代码时,通过数组索引引用东西会让生活变得糟糕