环境:Node,Express,Mu2Express,mongoose
我想要做的是从mongoose获取一个数组,让模板将每个值渲染为自己的单选按钮。
找不到例子。
我现在有什么:
app.js中的路线:
app.get('/mutest',function(req, res){
var data = [1,2,3,4];
res.render('muTest',{
'locals': {
data: data }});
});
模板(muTest.mustache)
<form name="test" action="muTest" method="post">
{{#data}}
<input type="radio" name="choice" value={{data}}>{{data}}<br/>
{{/data}}
<input type="submit" value="Submit">
</form>
结果:
当然,选择任何按钮都会提交“1,2,3,4”的值。
我想要的是什么: 用于页面呈现如下:
提交单个值(例如字符串“3”)。
TIA有任何建议!
答案 0 :(得分:0)
诀窍是你必须引用当前指向的项目:
在第一种情况下,您使用{{data}}作为引用数据数组的值(以及单选按钮的文本)。
在第二种情况下,您正在使用{{data [0]}},它将始终引用数组的第一个元素。
对于小胡子(符合超级规范),你必须将值(1,2,3,4)包装到一个对象中:
data = [
{value: 1, label: 1},
{value: 2, label: 2},
....
];
然后:
<form name='test' action='muTest' method='post'>
{{#data}}
<input type='radio' name='choice' value={{#value}}>{{#label}}</input/><br/>
{{/data}}
<input type='submit' value='Submit'/>
</form>
在mustache.js中,{{。}}运算符就像在javascript中使用'this'对象(或者在python中使用self等):
<form name='test' action='muTest' method='post'>
{{#data}}
<input type='radio' name='choice' value={{.}}>{{.}}</input/><br/>
{{/data}}
<input type='submit' value='Submit'/>
</form>
输出是:
<form name='test' action='muTest' method='POST'>
<input type='radio' name='choice' value='1'>1</input><br/>
<input type='radio' name='choice' value='2'>2</input><br/>
<input type='radio' name='choice' value='3'>3</input><br/>
<input type='radio' name='choice' value='4'>4</input><br/>
<input type='submit' value='Submit'/>
</form>