对于我的应用,我试图在小部件集合的每个项目上设置操作。窗口小部件项目包含url
(api rest)和period
。目标是遍历一个小部件集合并执行以下操作:
//Loop through collection
Meteor.setInterval(function(){
Meteor.call('getData', <Collection>.url,function(e,r){
if(e){
console.error(e);
}else{
//Display the data into the template
}
});
},<Collection>.period);
在模板中,我想做类似的事情:
{{#each widgets}}
{{widgetItem}}
{{/each}}
我想知道最好的方法是什么?我听说过使用Telescope App的Dynamics模板,但我不知道它是否对我的情况有用。
答案 0 :(得分:0)
{{#each}}
Spacebars魔法会改变其中元素的数据上下文。
基本上,假设您的小部件具有以下或类似的数据结构:
{
templateName : 'coolWidget1',
templateData : { ... }
}
你可以写下以下内容:
{{#each Widgets}}
{{> Template.dynamic template=templateName data=templateData}}
{{/each}}
template=
和data=
是您传递给Template.dynamic
的对象参数(它将生成{ template : templateName, data : templateData}
)。
然后,您可以通过templateName
和templateData
来感谢{{#each}}
更改数据上下文(Spacebars明白您的意思&#34; templateName
和templateData
循环的当前项目。)
那就是HTML。如果您想要使用模板与call
分享返回的值,请搜索有关Session
或ReactiveVar
的问题,已经有很多问题要问。< / p>