2015-04-17 88 views
1

对于我的应用程序,我试图对Widgets集合中的每个项目设置操作。一个widget项目包含一个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}} 

我想知道是什么做到这一点的最佳方式?我听说有望远镜应用程序的动态模板,但我不知道它对我的情况是否有用。

回答

0

{{#each}}Spacebars魔法更改了其中元素的数据上下文。

基本上,假设你有以下或你的部件类似的数据结构:

{ 
    templateName : 'coolWidget1', 
    templateData : { ... } 
} 

你可以写的线沿线的东西:

{{#each Widgets}} 
    {{> Template.dynamic template=templateName data=templateData}} 
{{/each}} 

template=data=是对象你传递给Template.dynamic的参数(它会产生{ template : templateName, data : templateData})。
然后,你可以通过templateNametemplateData感谢{{#each}}改变数据上下文(Spacebars明白你的意思的” templateName和循环的当前项目的templateData)。

所以这是为HTML。如果你想分享从call与模板返回的价值,搜索关于SessionReactiveVar的问题,已经有很多的东西被问到。

相关问题