0

我有一个大问题,我不明白如何解决这个问题。所以我有一个助手类:

class IfCondHelper implements HelperInterface
{
public function execute(Template $template, HandlebarsContent $context, $args, $source)
{
    $parsed_args = $template->parseArguments($args);

    if (count($parsed_args) != 3) {
        throw new \InvalidArgumentException(
            '"IfCond" helper expects exactly three arguments.'
        );
    }

    switch ($context->get($parsed_args[1])) {
        case "==":
            return ($context->get($parsed_args[0]) == $context->get($parsed_args[2])) ? $source : false;
            break;
..............
     }
}

现在在我的模板中我这样做:

{{#ifCond 2 '==' 2}} {{data.oUser.number}} {{/ifCond}}

问题是模板没有显示data.oUser.numberwhitch 的值是 4,而是显示了没有data.oUser.number解释它们的代码。助手工作正常,因为如果我这样做:

{{#ifCond 2 '==' 2}} <p>Test</p> {{/ifCond}} 

这工作正常。你能帮我吗 ?提前谢谢,对不起我的英语

4

1 回答 1

0

我发现了错误,需要在调用助手后进行补充渲染

return ($context->get($parsed_args[0]) == $context->get($parsed_args[2])) ? $template->render($context) : false;
于 2016-07-15T13:13:41.293 回答