Ril*_*ark 22 handlebars.js meteor
我有一个叫做的帮助器printArray
,只打印一个数组中的每个项目.当我在JS中定义数组并通过上下文对象将其传递给帮助程序时,它工作得很好.我想要做的是在模板中定义数组,如:
{{printArray arr=[1, 3, 4] }}
Run Code Online (Sandbox Code Playgroud)
不幸的是,到了我的帮手时,arr
关键点指向undefined
.是否有任何有效的语法来在我的帮助器中获取数组而不在javascript中定义它?
你可以使用JavaScript的arguments
数组来完成这样的事情.该arguments
数组使您可以访问调用时传递给函数的每个值.
这将允许您使用如下语法:
{{printArray 1 3 4}}
Run Code Online (Sandbox Code Playgroud)
代码如下所示:
Handlebars.registerHelper('printArray', function() {
//Last argument is the options object.
var options = arguments[arguments.length - 1];
//Skip the last argument.
for(var i = 0; i < arguments.length - 1; ++i) {
//Do your thing with each array element.
}
//Return your results...
return '';
});
Run Code Online (Sandbox Code Playgroud)
您需要使用另一个返回数组的助手
Template.ArrayDemo.helpers({
arrayValues: [1, 2, 3],
printArray: function(arr) {
for (i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
}
});
Run Code Online (Sandbox Code Playgroud)
现在你可以做
{{printArray arr=arrayValues}}
归档时间: |
|
查看次数: |
11385 次 |
最近记录: |