从 mustache 视图中调用 php 函数并将 mustache 数组值传递给函数调用
Call php function in view from mustache and pass a mustache array value into the function call
我想将数组值传递给视图函数,以便它可以根据发送的值发回一些 HTML。我希望我的系统发回文本区域、文本框或单选按钮。
我的小胡子上有 {{#get_question}}{{type}}{{/get_question}}
,其中类型可以具有 ["input"、"radio"、"comment"] 中的任何值 我最头疼的是如何调用这个函数并传递参数。
我想要一个php函数get_question提取{{type}}中传递的值,如果type不是文本,我想将type的值传递给我的部分调用 {{>}}
并动态加载由 {{type}} 表示的部分
我从 Kohana 论坛获得了这段代码示例:
Hello, {{#caps }}{{ text }}{{/ caps }}!
$m = new Mustache_Engine(array(
'helpers' => array(
'caps' => function() {return function($text, $m) {
return strtoupper($m->render($text));
}}
)
));
从我的角度来看,我似乎无法让它工作,因为我必须将它包含在另一个 function(){}
块中。
我该怎么做?
很头疼,因为你在和 Mustache 的基础作斗争:)
这与 "Mustache way" 相比有点倒退。不要试图通过 lambda 在逻辑中硬塞,你应该将逻辑提取到你的 view/viewmodel/model 中,并将你的模板限制为简单的部分和字符串插值。像这样的事情就可以了:
{{# questions }}
{{# is_input }}{{> input }}{{/ is_input }}
{{# is_radio }}{{> radio }}{{/ is_radio }}
{{# is_comment }}{{> comment }}{{/ is_comment }}
{{/ questions }}
然后每个问题 view/viewmodel/model 将回答 is_input()
、is_radio()
和 is_comment()
。
我想将数组值传递给视图函数,以便它可以根据发送的值发回一些 HTML。我希望我的系统发回文本区域、文本框或单选按钮。
我的小胡子上有 {{#get_question}}{{type}}{{/get_question}}
,其中类型可以具有 ["input"、"radio"、"comment"] 中的任何值 我最头疼的是如何调用这个函数并传递参数。
我想要一个php函数get_question提取{{type}}中传递的值,如果type不是文本,我想将type的值传递给我的部分调用 {{>}}
并动态加载由 {{type}} 表示的部分
我从 Kohana 论坛获得了这段代码示例:
Hello, {{#caps }}{{ text }}{{/ caps }}!
$m = new Mustache_Engine(array(
'helpers' => array(
'caps' => function() {return function($text, $m) {
return strtoupper($m->render($text));
}}
)
));
从我的角度来看,我似乎无法让它工作,因为我必须将它包含在另一个 function(){}
块中。
我该怎么做?
很头疼,因为你在和 Mustache 的基础作斗争:)
这与 "Mustache way" 相比有点倒退。不要试图通过 lambda 在逻辑中硬塞,你应该将逻辑提取到你的 view/viewmodel/model 中,并将你的模板限制为简单的部分和字符串插值。像这样的事情就可以了:
{{# questions }}
{{# is_input }}{{> input }}{{/ is_input }}
{{# is_radio }}{{> radio }}{{/ is_radio }}
{{# is_comment }}{{> comment }}{{/ is_comment }}
{{/ questions }}
然后每个问题 view/viewmodel/model 将回答 is_input()
、is_radio()
和 is_comment()
。