2012-07-13 72 views
0

我刚开始使用小胡子模板引擎。我目前正在使用它的PHP实现(https://github.com/bobthecow/mustache.php/wiki)。我使用助手来操纵数据呈现的方式。如何动态更改小胡子模板数据

 
$data = array("name" => "abhilash"); 
$template = "Hello {{name}}, {{#bold}}Welcome{{/bold}}"; 

$m = new Mustache_Engine(array(
    "helpers" => array(
    "bold" => function($content) { 
     return "<b>$content</b>"; 
    }))); 
$html = $m->render($template, $data); 

在此帮助下,我可以使用粗体显示“欢迎”字样。我想知道是否有可能操纵帮助功能帮助$data。例如,如果模板如下所示,并且我有一个注册为帮助函数dataSource,我想用它从datasource_func_name()收集一些数据(如键值对),并将其附加到$data

 
{{#dataSource}}datasource_func_name{{/dataSource}} 
Hi {{name}} 

回答

1

这通常不会如何使用助手。然而,小胡子基本上预计数据源,所以为什么不直接注入它?

$html = $m->render($template, $dataSource); 
+0

嗨,Laurent,据我所知,它并不意味着提供数据源。其实我正在尝试构建一个框架(胡须负责渲染数据)。其中我想添加对模板的支持以指示数据源模块名称,并且框架将负责从此数据源收集数据并将其反馈回模板。我认为助手将是一个更好的方式来做到这一点,而无需修改胡须代码。 – Goje87 2012-07-13 14:46:47

+2

他告诉你如何做到这一点:)小胡子不应该获取数据。数据应该被提取并提供给胡子。 – bobthecow 2012-07-31 17:45:33