Как добавить атрибут без метки в элемент управления XPages? - PullRequest
0 голосов
/ 24 сентября 2018

Для элемента управления xp: inputtext я хотел бы добавить атрибут [aria-required = 'true'], но мне интересно, как я могу добиться этого с помощью свойства attribute без необходимости устанавливать метку?

Я пытался:

<xp:this.attrs>
    <xp:attr>
        <xp:this.value><![CDATA[[aria-required='true']]]></xp:this.value>
    </xp:attr>
</xp:this.attrs>

Но затем я получаю сообщение об ошибке:

Описание Путь к ресурсу Тип Местоположение Обязательное свойство "name" для xp: attr отсутствует.

1 Ответ

0 голосов
/ 24 сентября 2018

Я не уверен, что понимаю, что вы имеете в виду под "без установки ярлыка".<xp:attrs> содержит коллекцию из одного или нескольких <xp:attr> компонентов.Затем компонент <xp:attr> содержит 2 атрибута name= (только строка) и value= (только строка).

Так что если вы хотите установить пользовательский атрибут для тега HTML-аналога, вы должны написать:

<xp:inputText ...>
    <xp:this.attrs>
        <xp:attr name="aria-required" value="true" />
    </xp:this.attrs>
</xp:inputText>

Если вы хотите автоматизировать наличие определенных атрибутов, вы также можете определить правило темы и применить его (конечно, если у вас есть другие стили и / или правила, которые обычно применяются к вводу, вы должны сделатьобязательно повторите их снова в новом правиле):

Правило темы

<control>
    <name>Input.AriaRequired</name>
    <property>
        <name>attrs</name>
        <complex type="xp_attr">
            <property>
                <name>name</name>
                <value>aria-required</value>
            </property>
            <property>
                <name>value</name>
                <value>true</value>
            </property>
        </complex>
    </property>
</control>

Ввод с примененной темой

<xp:inputText themeId="Input.AriaRequired" ... />
...