对集合项执行特定操作

时间:2015-04-17 13:32:38

标签: meteor

对于我的应用,我试图在小部件集合的每个项目上设置操作。窗口小部件项目包含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模板,但我不知道它是否对我的情况有用。

1 个答案:

答案 0 :(得分: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明白您的意思&#34; templateNametemplateData循环的当前项目。)

那就是HTML。如果您想要使用模板与call分享返回的值,请搜索有关SessionReactiveVar的问题,已经有很多问题要问。< / p>