PHP Усы Динамические частичные и частичные коллекции - PullRequest
0 голосов
/ 02 мая 2018

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

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

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

Я пытался использовать этот точный метод только с ошибками.

Содержание по ссылке:

Вид:

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

Шаблон:

base.mustache

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

text.mustache

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

image.mustache

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

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

Вид:

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

Шаблон:

base.mustache

{{@items}}

text.mustache

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

image.mustache

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

1 Ответ

0 голосов
/ 30 мая 2018

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

{
  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 можно заменить просто строкой с таким же значением, но у меня нет установки, где я могу проверить это прямо сейчас.

1007 1008 *
...