PHP Mustache动态部分和部分集合

时间:2018-05-02 02:50:07

标签: php mustache mustache.php

有没有人找到动态渲染局部的方法?

我为mustache.js找到了这个link但是我不确定如何在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 :(得分:0)

在您发布的链接上向下看一下该页面,我看到操作系统提交了动态部分as a mustache spec的票证。通过那里我发现了以下由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函数可以替换为只有相同值的字符串,但是我没有可以立即测试的设置。

不幸的是,除了几个表达对该主题感兴趣的人之外的最后一条评论是在2013年1月,所以我将会发表意见,并说在这一点似乎不太可能出现任何问题。< / p>