在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]
?谢谢!
答案 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]保存到数据上下文或模块对象&直接访问它。通过数组索引引用事物会让你在一个月内重新访问代码时感到生气......