Как создать метку для пользовательского элемента управления Orbeon

В метке отсутствует атрибут «для» в моем пользовательском элементе управления. Я использовал режим lhha, но теперь переключился на режим custom-lhha, чтобы попытаться исправить проблему.

Код ниже делает что-то очень странное. Элемент метки содержит два вложенных диапазона с правильным содержимым метки, а атрибут for содержит часть правильного идентификатора.

<xbl:xbl xmlns:xh="http://www.w3.org/1999/xhtml"
     xmlns:xf="http://www.w3.org/2002/xforms"
     xmlns:xxf="http://orbeon.org/oxf/xml/xforms"
     xmlns:fr="http://orbeon.org/oxf/xml/form-runner"
     xmlns:xbl="http://www.w3.org/ns/xbl"
     xmlns:xxbl="http://orbeon.org/oxf/xml/xbl">

<xbl:binding element="fr|image-picker" id="fr-image-picker" xxbl:mode="lhha custom-lhha binding value" xmlns:xxbl="http://orbeon.org/oxf/xml/xbl">
    <metadata xmlns="http://orbeon.org/oxf/xml/form-builder">
        <display-name lang="en">Image Picker</display-name>
        <icon lang="en">
            <small-icon>/apps/fr/assets/img/camera.png</small-icon>
            <large-icon>/apps/fr/assets/img/camera.png</large-icon>
        </icon>
        <templates>
            <view>
                <fr:image-picker id="image-picker" ref="">
                    <xf:label ref=""/>
                    <xf:hint ref=""/>
                    <xf:help ref=""/>
                    <xf:alert ref=""/>
                </fr:image-picker>
            </view>
        </templates>
    </metadata>
    <xbl:template>
        <xh:label for=""><xf:output value="xxf:label('fr-image-picker')"/></xh:label>
        <xf:input ref="xxf:binding('fr-image-picker')" class="image-picker"/>
    </xbl:template>
</xbl:binding>

Any tips would be appreciated.


person Linus Norton    schedule 14.08.2013    source источник
comment
Немного непонятно, чего вы хотите добиться. Вы хотите разместить метку внутри шаблона XBL?   -  person ebruchez    schedule 16.08.2013
comment
Честно говоря, я не уверен. Я просто пытаюсь заставить его работать. Когда у меня нет ярлыка, у него нет атрибута for. Когда я добавляю его в шаблон, он имеет половину идентификатора.   -  person Linus Norton    schedule 19.08.2013
comment
Я не думаю, что смогу ответить на ваш вопрос, если вы не скажете мне, что вы пытаетесь сделать ;) Как насчет того, чтобы привести пример того, как как вы хотите использовать этот компонент?   -  person ebruchez    schedule 19.08.2013


Ответы (1)


Вот пример, определяющий простой компонент с поддержкой привязки и метки. Когда я использую компонент, я просто использую обычный xf:label:

<xh:html
        xmlns:xh="http://www.w3.org/1999/xhtml"
        xmlns:xf="http://www.w3.org/2002/xforms"
        xmlns:xxf="http://orbeon.org/oxf/xml/xforms"
        xmlns:fr="http://orbeon.org/oxf/xml/form-runner">
    <xh:head>
        <xf:model>
            <xf:instance>
                <form xmlns=""/>
            </xf:instance>
        </xf:model>
        <xbl:xbl xmlns:xbl="http://www.w3.org/ns/xbl" xmlns:xxbl="http://orbeon.org/oxf/xml/xbl">
            <xbl:binding element="fr|image-picker" id="fr-image-picker" xxbl:mode="lhha binding value" xmlns:xxbl="http://orbeon.org/oxf/xml/xbl">
                <xbl:template>
                    <xf:input ref="xxf:binding('fr-image-picker')"/>
                </xbl:template>
            </xbl:binding>
        </xbl:xbl>
    </xh:head>
    <xh:body>
        <fr:image-picker ref=".">
            <xf:label>My Label</xf:label>
        </fr:image-picker>
    </xh:body>
</xh:html>

Если вы хотите использовать внешнюю метку с for, просто дайте идентификатор fr:image-picke и используйте for как обычно:

<xf:label for="my-date-picker">My Label</xf:label>
<fr:image-picker id="my-date-picker" ref="."/>
person ebruchez    schedule 22.08.2013