PHP Mustache Dynamic partials и частичные коллекции

Кто-нибудь нашел способ динамически отображать партиалы?

Я нашел этот ссылка на сайт для mustache.js, но я не уверен, как реализовать это в php, и есть ли еще, чтобы сделать это в php. Даже если это был метод логического флага в примере по ссылке.

Основы этого заключаются в выборе партиала на основе файла представления. Делаем частичный выбор динамическим и не указываем его в шаблоне.

Я пробовал использовать именно этот метод, но безуспешно.

Контент по ссылке:

Вид:

{
  items: [
    { type: 'image', url: 'Some URL', is_image: true },
    { type: 'text', content: 'Some text', is_text: true }
  ]
}

Шаблон:

база. усы

{{#items}}
  {{#is_text}}
    {{>text}}
  {{/is_text}}
  {{#is_image}}
    {{>image}}
  {{/is_image?}}
{{/items}}

текст. усы

<p>{{content}}</p>

изображение. усы

<p><img src = "{{url}}"/></p>

... можно заменить на:

Вид:

{
  items: [
    { partial: 'text', content: 'Some text' },
    { partial: 'image', url: 'Some URL' }
  ]
}

Шаблон:

база. усы

{{@items}}

текст. усы

<p>{{content}}</p>

изображение. усы

<p><img src = "{{url}}"/></p>
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
192
1

Ответы 1

Немного посмотрев вниз по ссылке, которую вы разместили, я увидел, что оператор отправил тикет на динамические частичные как спецификация усов. Просматривая там, я обнаружил следующее, опубликованное thelucid, которое достигает цели, хотя и не так красиво, как метод, на который надеетесь вы и groue.

{
  items: [
    { url: 'Some URL',      html: function() { return '{{>image}}'; } },
    { content: 'Some text', html: function() { return '{{>text}}'; } },
  ]
}

base.mustache
{{#items}}
  {{{html}}}
{{/items}}

text.mustache
<p>{{content}}</p>

image.mustache
<p><img src = "{{url}}"/></p>

Я считаю, что функцию html можно заменить просто строкой с тем же значением, но у меня нет настройки, где я мог бы проверить это прямо сейчас.

К сожалению, последний комментарий, кроме пары человек, проявивших интерес к теме, был в январе 2013 года, поэтому я собираюсь рискнуть и сказать, что на данный момент маловероятно, что из этого что-то выйдет.

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