2015-04-17 47 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的問題,已經有很多的東西被問到。