主题是一个返回一些文档的集合。每个文档都有几个字段。其中一个字段是字符串数组。 我试图将字符串数组的值表示为返回的每个文档的单选按钮组。我不能给每个组别一个唯一的名字。我尝试了console.log语句,发现radiobutton组出来很好但后来搞砸了,因为调用助手的次数比返回的文件数多。
我的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'));
},
});
答案 0 :(得分:1)
这不是Session
变量的好用,因为你反复使用它来表示循环内的给定_id
。它会不断变化。由于您只需要父对象的_id
,因此可以在空格键中使用相对路径表示法在模板中访问它,如下所示:
<template name='radiogroup'>
<li><input type=radio name="{{../_id}}" />{{this}}</li>
</template>
然后你甚至不需要你的助手。在任何情况下,您都不需要choices
帮助,因为choices
已经可以迭代。