2015-06-01 4 views
2

Мне было интересно, как использовать динамические элементы в Орбеоне. В песочнице Orbeon существует пример с названием dynamic-dropdown (http://localhost:8080/orbeon/xforms-sandbox/sample/dynamic-dropdown).Динамические изменения элементов в текущей версии Orbeon?

<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:xf="http://www.w3.org/2002/xforms" 
    xmlns:xxf="http://orbeon.org/oxf/xml/xforms"> 
<head> 
    <title>Dynamic dropdown depending on checkboxes</title> 
    <xf:model> 
     <xf:instance id="selected-values" xmlns=""> 
      <instance> 
       <pets/> 
       <favorite/> 
      </instance> 
     </xf:instance> 
     <xf:instance id="pets" xmlns=""> 
      <root> 
       <item name="Cat" value="cat"/> 
       <item name="Dog" value="dog"/> 
       <item name="Fish" value="fish"/> 
       <item name="Cobra" value="cobra"/> 
      </root> 
     </xf:instance> 
    </xf:model> 
    <style type="text/css"> 
     .xforms-label { display: block; font-weight: bold } 
    </style> 
</head> 
<body> 
    <xf:select ref="pets" appearance="full"> 
     <xf:label>Please list all your pets:</xf:label> 
     <xf:itemset ref="instance('pets')/item"> 
      <xf:label ref="@name"/> 
      <xf:value ref="@value"/> 
     </xf:itemset> 
    </xf:select> 
    <br/> 
    <xf:select1 ref="favorite"> 
     <xf:label>Select your favorite pet:</xf:label> 
     <xf:itemset> 
      <xf:label/> 
      <xf:value/> 
     </xf:itemset> 
     <xf:itemset ref="instance('pets')/item[@value = xxf:split(context()/../pets)]"> 
      <xf:label ref="@name"/> 
      <xf:value ref="@value"/> 
     </xf:itemset> 
    </xf:select1> 
</body> 
</html> 

Я тестировал в Орбеоне 4.8 и 4.9 и ничего не делал. Ни в коем случае, я имею в виду, что раскрывающийся список не заполняет выбранные элементы.

Я могу проверить его также в «открытой» песочнице (http://www.argonauta.org/orbeon/xforms-sandbox/sample/dynamic-dropdown) и здесь работает нормально. Но я не знаю, какая версия (может быть, 4.3).

Вопрос: является ли пример недействительным в текущей версии Orbeon? это ошибка? Если этот пример недействителен, какая модификация должна быть выполнена?

ответ

0

Хорошо, кажется, что если вы измените строку:

<xf:itemset ref="instance('pets')/item[@value = xxf:split(context()/../pets)]">

К

<xf:itemset ref="instance('pets')/item[@value = xxf:split(context()/pets)]">

пример работает в версии 4.9 Orbeon.

+0

Jorge, действительно, выражение 'context() /../ pets' выглядит правильно для меня. На данный момент я создал проблему, и мы ее рассмотрим. https://github.com/orbeon/orbeon-forms/issues/2250 – avernet

+0

Спасибо за ваше подтверждение! на данный момент изменение выражения работает как обходное решение для меня до следующего выпуска Orbeon. – JorgeHortelano

+0

Получил это, и мы будем следить за ним, как только мы узнаем об этом, есть ли «хорошая» причина, почему это происходит, или это действительно ошибка. – avernet

Смежные вопросы