Усы render() над массивом не работают

Что я здесь делаю неправильно?

<!doctype html>
<html>
<head>
  <title>Testing</title>
  <script src="mustache.js"></script>
</head>
<body>

<script type="text/javascript">
  var musk = ["athos", "porthos", "some other guy"];

  var output = Mustache.render("<div>The three <br>{{#musk}}<p>{{.}}</p>{{/musk}}<br> Those guys</div>", musk);

  console.log(output);

</script>

</body>
</html>

Это дает мне:

<div>The three <br><br> Those guys</div>

Если не ошибаюсь, копирую пример со страницы гитхаба почти идентично. Кроме того, я почти уверен, что html разрешен внутри шаблона, но не внутри содержимого или представления. Верно?


person Costa Michailidis    schedule 03.03.2012    source источник
comment
Мушкетёры не обходятся без Д'Артаганана!   -  person Akshat Jiwan Sharma    schedule 12.12.2012


Ответы (1)


Вам нужно назвать входной массив следующим образом:

var musk = {musk: ["athos", "porthos", "some other guy"]};
person ebaxt    schedule 03.03.2012
comment
Спасибо большое! Могу я попросить вас объяснить, почему? - person Costa Michailidis; 03.03.2012
comment
Если вы не назовете массив, как механизм шаблонов теперь будет ссылаться на {{#musk}} {{/musk}}. Имя переменной, используемое в вызове функции, невидимо для движка. - person ebaxt; 03.03.2012
comment
хм... ладно, попался! Итак, моя проблема более высокого уровня заключается в том, что шаблоны с данными имеют много вложенных уровней: jsondata = { title: заголовок сообщения в блоге, tags: [весело, кулинария, техническое] }; Я постараюсь опубликовать отдельный вопрос для этого. Спасибо большое! - person Costa Michailidis; 04.03.2012