【问题标题】:Rendering Mustache Block with external templates使用外部模板渲染 Mustache Block
【发布时间】:2014-12-12 15:35:50
【问题描述】:

我正在使用 Mustache 2.7.0 并第一次尝试使用 Blocks pragma

基本上,我称之为basic.mustache

{{< layout }}
{{$ title}}{{page.meta.name}}{{/ title}}
{{/ layout }}

调用块layout.mustache

<!DOCTYPE html>
<html>
    <head></head>
    <body>
        <h1>{{$ title}}test{{/ title}}</h1>
    </body>
</html>

我看到 page.meta.name 的值出现在页面上,但没有出现在 layout.mustache 中写的标签。
有人知道为什么吗?

PHP

$mustache = new Mustache_Engine(array(
    'pragmas' => [Mustache_Engine::PRAGMA_BLOCKS],
    'loader' => new Mustache_Loader_FilesystemLoader('htdocs/templates'),
    'partials_loader' => new Mustache_Loader_FilesystemLoader('htdocs/templates/partials/')
));

$tpl = $mustache->loadTemplate('basic');
echo $tpl->render( $this );

【问题讨论】:

    标签: mustache mustache.php


    【解决方案1】:

    似乎partials_loaderPragma blocks不兼容

    删除这一行:

    'partials_loader' => new Mustache_Loader_FilesystemLoader('htdocs/templates/partials/')
    

    解决了我的问题。

    【讨论】:

    • 我认为您在另一个问题中意识到了这一点,但问题是父模板仍被视为部分,因此它们是通过部分加载器而不是普通模板加载器加载的。大多数时候,你应该只为两者使用一个模板加载器(和一个目录):)
    • 谢谢。节省了我的时间和精力。
    猜你喜欢
    • 2011-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-26
    • 2015-03-11
    • 2013-08-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多