2014-11-10 3 views
0

Окружающая среда: Узел, Экспресс, Mu2Express, 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
  • 1,2,3,4
  • 1,2,3,4
  • 1,2,3,4

и, конечно же, выбирая любой из кнопок представляет значение " 1,2,3,4" .

Что я хочу: для страницы, чтобы быть оказаны как это:

с одним значением (например, строка «3»).

TIA для любых предложений!

ответ

0

Хитрость заключается в том, что вы должны ссылаться на текущий элемент на который указывает на:

В первом случае, вы используете {{данные}} в качестве значения (и текст вашего радио-кнопки) который относится к массиву данных.

Во втором случае вы используете {{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 (или себя в питона и т.д.):

<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> 
+0

rangerdanger также поделился со мной JavaScript, чтобы сделать это , data.map (function (d) {return {value: d};}) затем в шаблоне использовать {{значение}} – user1390526

Смежные вопросы