我开始在 PHP 上使用 Mustache,但我没有设法让包装函数充当债务。
我有这个模板
{{#skill_level}}
<span class="stars">
{{#stars}}
{{skill_level}}
{{/stars}}
</span>
{{/skill_level}}
我有这些数据
$data = new StdClass;
$data->skill_level = 3;
$data->stars = function($level) {
$aux = "";
$l = intVal($level);
for ($i = 0; $i < $l; $i++) {
$aux .= "+";
}
for ($i = $l; $i < 5; $i++) {
$aux .= ".";
}
return $aux;
};
我渲染m.render($tenplate, $data);
,我想获得类似的东西:
<span class="stars">
+++..
</span>
但它不起作用。
我明白了
<span class="stars">
.....
</span>
因为Mustache
是传递"{{skill_level}}"
给我的函数而不是 value 3
。
此外,如果我更改模板,则在小胡子标签中放置退格键:
{{ #skill_level }}
<span class="stars">
{{ #stars }}
{{ skill_level }}
{{ /stars }}
</span>
{{ /skill_level }}
然后{{ skill_level }}
被处理但它没有被发送到{{ #starts }}
,得到的渲染是
<span class="stars">
3
</span>
那么,有人知道我做错了什么吗?我应该如何编写模板以使其正常工作?欢迎任何建议或经验。谢谢。