在此Example 2 - " 传递数据上下文"
JS
Template.overview.helpers({
users: [
{ name: 'David' },
{ name: 'Shaune' }
]
});
HTML
<template name="overview">
{{> userList users}}
</template>
<template name="userList">
{{#each this}}
{{name}}<br>
{{/each}}
</template>
结果
David
Shaune
我的目标是将一组模板名称传递到用户所在的Template.overview
,如下所示:
<template name="overview">
{{#each templateArray }}
{{> userList this }}
{{/each}}
</template>
其中templateArray
是包含模板名称的字符串数组,this
是每个模板的名称。
这可能吗?
编辑:
如需更深入,请考虑我的helpers
Template.overview.helpers({
users: [
{ name: 'David' },
{ name: 'Shaune' }
],
otherUsers: [
{ name: 'Jane' },
{ name: 'Betty' }
],
moarUsers: [
{ name: 'Ben' },
{ name: 'Jerry' }
]
});
我想将每个数据上下文传递到同一个模板中(在本例中为userLists
)。
答案 0 :(得分:1)
您无需调用任何内容,您可以在帮助程序中使用this
,例如
helper: function(){
return this; //if you pass string via templateArray
return this.name; //if you pass object via templateArray
}
因为你所做的事情看起来像是这样但很好地包装在模板中
<template name="overview">
{{#each templateArray }}
{{name}}<br>
{{/each}}
</template>
我不知道为什么你在代码中有双循环,在第一个循环中传递对象并且它不能迭代它
如果您想循环遍历字符串数组,请执行以下操作:
{{#each templateArray}}
{{this}}<br>
{{/each}}