Подтвердить что ты не робот

Итерация по массивам с усами

Как получить ссылку на текущий элемент на итерации?

{{#my_array}}
    <p>{{__what_goes_here?__}}</p>
{{/my_array}}

Надеюсь, я просто упускаю из виду очевидное.

4b9b3361

Ответ 1

В соответствии с спецификацией changelog неявный итератор (.) был добавлен в v1.1.0 спецификации. Каждая библиотека Mustache, которая реализует хотя бы v1.1.0, должна поддерживать это.

{{#array_of_strings}}<li>{{.}}</li>{{/array_of_strings}}

Ответ 2

Из исходного кода https://github.com/bobthecow/mustache.php

/**
 * The {{%IMPLICIT-ITERATOR}} pragma allows access to non-associative array data in an
 * iterable section:
 *
 *     $context = array('items' => array('foo', 'bar', 'baz'));
 *
 * With this template:
 *
 *     {{%IMPLICIT-ITERATOR}}{{#items}}{{.}}{{/items}}
 *
 * Would render as `foobarbaz`.
 *
 * {{%IMPLICIT-ITERATOR}} accepts an optional 'iterator' argument which allows implicit
 * iterator tags other than {{.}} ...
 *
 *     {{%IMPLICIT-ITERATOR iterator=i}}{{#items}}{{i}}{{/items}}
 */

Ответ 3

Я немного отошел от своего кода и вспомнил, что Ruby утка напечатана. Поскольку мой массив состоял из строк, мне нужно было:

{{#my_array}}
    <p>{{to_s}}</p>
{{/my_array}}

Я оставлю этот вопрос здесь в надежде спасти кого-нибудь еще некоторое время.