Вызовите функцию php в поле зрения из усов и передайте значение массива усов в вызов функции

Я хотел бы передать значение массива функции просмотра, чтобы она могла отправить некоторый HTML-код на основе этого отправленного значения. Я хочу, чтобы моя система отправляла текстовое поле, текстовое поле или переключатель.

У меня на усах стоит {{#get_question}}{{type}}{{/get_question}} где type может иметь любое значение из ["input","radio","comment"] Основная головная боль у меня как вызвать эту функцию и передать параметр.

Я хотел бы иметь php-функцию get_question, которая извлекает значение, переданное в {{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(){}.

Как мне это сделать?


person Churchill    schedule 19.02.2015    source источник


Ответы (1)


Это головная боль, потому что вы боретесь с основами Усов :)

Это немного в обратном направлении от «Пути Усов». Вместо того, чтобы пытаться втиснуть логику с помощью лямбда-выражений, вы должны извлечь логику в свое представление/модель представления/модель и ограничить свой шаблон простыми разделами и строковыми интерполяциями. Что-то вроде этого поможет:

{{# 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().

person bobthecow    schedule 20.02.2015
comment
Это именно то, что я сделал, установив для is_input или is_radio значение true/false и передав параметр partials в представление. - person Churchill; 21.02.2015