我正在尝试用胡子制作模板。
layout.mustache
-- view/page1.mustache
-- view/page2.mustache
-- view/page3.mustache
我将loader设置为layout.mustache,将partials设置为view目录。
直到这没关系。
基于所遵循的层次结构,我正在尝试使用类似
的方式在主布局中加载视图$m->render('layout', array('page' => 'page1'));
并且在我的布局{{> page}}
中,它不起作用。它正在返回“page1”,它没有加载胡子文件...
我是lesslogic模板中的新用户,所以我需要你的帮助......也许我正在努力做到这一点不可能。
感谢您对未来的帮助。
答案 0 :(得分:1)
如果Mustache支持这样的事情,它看起来像{{> {{page}} }}
,因为你所说的不是“加载页面模板”,而是“加载名为(页面变量的值)的模板”。这就是该系列的“逻辑”方面,所以这不是Mustache支持的东西。
那就是说,你可以做你想做的事情,你只需要有点创意:)
你可以使用类似the filesystem alias loader here的东西劫持Mustache的部分加载器。
然后你将Mustache实例化为partials loader:
$m = new Mustache_Engine(array(
'partials_loader' => FilesystemAliasLoader('path/to/views')
));
现在,在渲染之前,您将为page
partial设置别名:
$m->getPartialsLoader()->setTemplate('page', 'page1');
$m->render('layout', $data);
当Mustache到达您的{{> page }}
部分时,它会要求FilesystemAliasLoader加载“page”。它在别名中查找“page”,并确定您的意思是“page1”,然后加载view/page1.mustache
。