Twig:设置onclick-handler(jsonArray)。语法错误

时间:2015-07-13 05:46:48

标签: symfony twig

如何在没有语法错误的情况下设置onclick-var?

{% if active is defined and active == false %}
    {% set onclick = 'javascript:void(0); false;' %}
{% else %}
    {% set onclick = "myApp.dialog.show({
            'title': '{{ 'app.title'|trans({}, 'MyBundle') }}',
            'width': '{{ dialog.width }}',
            'height': '{{ dialog.height }}'
        });"
    %}
{% endif %}
<button onclick="{{ onclick }}" type="button" class="btn btn-default" aria-label="Left Align">

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

根据documentation over here,您可以使用set标记来捕获数据:

{% if active is defined and active == false %}
    {% set onclick = 'javascript:void(0); false;' %}
{% else %}
    {% set onclick %}
        myApp.dialog.show({
            'title': '{{ 'app.title'|trans({}, 'MyBundle') }}',
            'width': '{{ dialog.width }}',
            'height': '{{ dialog.height }}'
        });
    {% endset %}
{% endif %}

答案 1 :(得分:0)

我建议你制作一个宏,将视图中的实现抽象为一个单独的文件:

api/Foo/Operation?
    SelectedRanges[0].Min=0&
    SelectedRanges[0].Max=10&
    SelectedRanges[1].Min=100&
    SelectedRanges[1].Max=200&
    SelectedTypes=1&
    SelectedTypes=2 

会:

{% macro clickHandler(active) %}
    {% if active is defined and active == false %}
        javascript:void(0); false;
    {% else %}
        myApp.dialog.show({
            'title': '{{ 'app.title'|trans({}, 'MyBundle') }}',
            'width': '{{ dialog.width }}',
            'height': '{{ dialog.height }}'
        });
    {% endif %}
{% endmacro %}

http://twig.sensiolabs.org/doc/tags/macro.html