Как передать данные из разных источников, используя mustache.php и усатый партиал?

Я использую mustache.php. Предположим, у меня есть HTML-структура, подобная следующей (просто пример, чтобы вы поняли мою проблему) в моем шаблоне усов:

<nav>
    <div>
        <div>
            <a>{{object1.title}}</a>
        </div>
        <menu>
            {{#object2.items}}
                <li><a>{{title}}</a></li>
            {{/object2.items}}
        </menu>
    </div>
</nav>

Моя проблема здесь в том, что мои данные, которые должен использовать шаблон, поступают из двух разных источников (object1 и object2).

Согласно mustache.php wiki я мог загрузить шаблон так:

<?php

$object1 = some_function_returns_a_json_object( 1 );

$mustache = new Mustache_Engine();
$my_template = $mustache->loadTemplate( 'my_template' ); // will fetch my_template.mustache
echo $my_template->render( $object1 ); // passes data from $object1 to my_template.mustache

Но как насчет моих пунктов меню в примере HTML выше? они должны быть получены из другого объекта, который я не могу иметь в том же $ object1.

Я не понял, как обращаться с одним шаблоном (и частями) и данными из нескольких источников.

Должен ли я разделить HTML выше в разных частичках? Тем не менее, как я могу передать данные JSON вложенным частям в любом случае?

1 ответ

О, разобрался

Я могу передать мои объекты в виде массива здесь

echo $my_template->render( array( 'object1' => $object1, 'object2' => $object2 ) );

и это будет работать - не было слишком ясно в документах mustache.php

не уверен, что это лучшая практика, но хорошо выглядит и для частичного использования

Другие вопросы по тегам