twig属性函数在twig宏中使用时无法正常工作(smartivisu.de)

时间:2015-02-21 10:32:33

标签: jquery-mobile twig

这个问题的背景是SmartVISU(http://smartvisu.de),一个基于jquery mobile和twig的家庭自动化前端。

twig属性(http://twig.sensiolabs.org/doc/functions/attribute.html)函数在单独使用时可以正常使用:

{% import 'icon.html' as icon %}
{{ attribute(icon, 'battery', ['ert', '', 'WZ1_rtr_battery', 2.1, 3]) }}

其中icon.html提供了一个宏

{% macro battery(id, gad_switch, gad_value, minval, maxval) %}
<svg id="{{ uid(page, id) }}" data-widget="icon.battery" data-item="{{ gad_value }}, {{ gad_switch }}" data-min="{{ minval|default('0') }}" data-max="{{ maxval|default('255') }}"
    class="icon icon0" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 100 100">
    <g>
        <rect x="44" y="21" width="12" height="3" />
        <rect rx="3" x="35" y="25" width="30" height="45" fill="none" />
    </g>
</svg>

{% endmacro %}

现在使用

{{ attribute(icon, 'battery', ['ert', '', 'WZ1_rtr_battery', 2.1, 3]) }}

在另一个宏中,事实证明它不起作用。只有我使用

{{ attribute(icon, 'battery', ['ert', '', 'WZ1_rtr_battery', '', 2.1, 3]) }}

相反它显示但是然后,min被忽略,而max参数工作正常。

这里是其他宏代码:

{% macro shifter(id, gad_switch, gad_value, pic_on, pic_off, minval, maxval) %}

{% import "icon.html" as icon %}

{% if pic_on|slice(0, 5) == 'icon.' %}
    {{ attribute(icon, pic_on|slice(5), [id~1, gad_switch, gad_value, minval, maxval]) }}
{% else %}
    <span id="{{ uid(page, id) }}" data-widget="basic.shifter" data-item="{{ gad_value }}, {{ gad_switch }}"
        {% set pic_on = pic_on|default(icon1~'light_light_dim_00.png') %}
        data-pic-on="{{ pic_on }}" data-pic-off="{{ pic_off |default(icon0~pic_on|slice(icon1|length)) }}"
        data-min="{{ min|default('0') }}" data-max="{{ max|default('255') }}"
        class="switch"><a><img class="icon" src="{{ pic_off|default(icon0~'light_light_dim_00.png') }}" /></a>
    </span>
{% endif %}

{% endmacro %}

我无法找到错误,所以请看一下!

0 个答案:

没有答案