如何访问 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] 保存到数据上下文或模块对象并直接访问它。当您在一个月内重新访问代码时,通过数组索引引用事物会让生活变得糟糕...
在 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] 保存到数据上下文或模块对象并直接访问它。当您在一个月内重新访问代码时,通过数组索引引用事物会让生活变得糟糕...