2016-07-20 25 views
1

主題是返回少量文檔的集合。每個文件都有幾個字段。其中一個字段是一個字符串數組。 我想將字符串數組的值表示爲每個返回的文檔的單選按鈕組。我無法給每個組別一個獨特的名字。我嘗試了console.log語句,發現單選按鈕組出來的不錯,但隨後被調用的次數比返回的文檔數量多得多。爲每個數組創建單選按鈕組作爲文檔返回

我的HTML

<template name=topics> 
    {{#each topics}} 
    <tr> 
     <td><input type="checkbox" name="selectone" id="{{uniqueid}}"/></td> 
     <td><textarea rows=4 name="topicname" readonly>{{name}} </textarea></td> 
     <td><input type="text" value="{{dateCreated}}" name="datecreated" readonly/></td> 
     <td> 
     {{#each choices}} 

      {{>radiogroup}} 

     {{/each}} 

     </td> 
     <td><a href="#" name="edittopic">Edit</a></td> 
    </tr> 

    {{/each}} 
</template> 

<template name='radiogroup'> 
    <li><input type=radio name="{{radiogroupname}}" />{{this}}</li> 
</template> 

我的JS:

Template.topics.helpers({ 
    uniqueid: function() { 
    Session.set('topicid',this._id); 
    return this._id; 
    }, 
    choices:function() { 
    return this.choices; 
    }, 
}); 

Template.radiogroup.helpers({ 
    radiogroupname: function() { 
    return(Session.get('topicid')); 
    }, 
}); 

回答

1

這不是一個好的使用Session變量你一遍又一遍地重複使用它來表示給定_id一個循環內。它會不斷變化。因爲你只需要父對象的_id,你可以使用相對路徑表示法中spacebars如下訪問它在你的模板:

<template name='radiogroup'> 
    <li><input type=radio name="{{../_id}}" />{{this}}</li> 
</template> 

然後,你甚至都不需要你的助手。因爲choices已經可以迭代,所以在任何情況下都不需要您的幫助器choices

+0

是的,謝謝你,邁克,這工作 –

相關問題