Как передать данные из разных источников, используя 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
не уверен, что это лучшая практика, но хорошо выглядит и для частичного использования