如何在Mustache中迭代一组对象

时间:2016-03-14 22:07:48

标签: mustache mustache.php

我有一个对象数组被设置为Mustache渲染函数:

 require 'vendor/Mustache/Autoloader.php';
    Mustache_Autoloader::register();
    $m = new Mustache_Engine();

echo $m->render($template, $data);

$ data包含一个对象数组,如下所示:

enter image description here

(这是来自http://www.jsoneditoronline.org的屏幕截图,我已打开其中一个对象供您参考)

现在我的$ template代码中有这个:

         {{#.}} 
                <article>

                    <h1>
                        <a href="layouts_post.html">{{name}}</a>
                    </h1>

                    <p>{{{text}}}</p>

                    <h2>{{jobtitle}}</h2>

                </article>
         {{/.}}

迭代不起作用,我想知道Mustache是​​否有办法迭代上面的对象数组。

(仅供参考 - 我尝试重建我的数据,但没有成功。每次Mustache都无法迭代。)

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

好的,我把它解决了......

为了使Mustache具有包含变量,需要将其指定为render函数中的参数。为了实现这一点,我将$ data数组分配给了一个&#39;数据&#39;键:

require 'vendor/Mustache/Autoloader.php';
Mustache_Autoloader::register();
$m = new Mustache_Engine();

echo $m->render($template, array('data' => $data));

所以现在&#39;数据&#39;成为胡子模板中的主要变量:

       {{#data}} 
                <article>

                    <h1>
                        <a href="layouts_post.html">{{name}}</a>
                    </h1> 

                    <p>{{{text}}}</p>

                    <h2>{{jobtitle}}</h2>

                </article>
       {{/data}}

事实上,事实证明你可以在这个函数中分配一大堆数组,并在模板布局中使用它们:

require 'vendor/Mustache/Autoloader.php';
Mustache_Autoloader::register();
$m = new Mustache_Engine();

echo $m->render($template, array('data' => $data, 'anotherValue' => $someOtherData));

我觉得很明显......