У меня есть определение привязки следующим образом:
<xforms:bind nodeset="instance('demo')/pointer"
type="xforms:integer"
calculate="
if($current-page < '2') then '0'
else (
if($current-page > '2')
then ($max-pages - 1)
else .
)"/>
Для каждого пользователя, нажимающего на форму, значение current-page
изменяется. Я хотел понять, как часто выполняются вычисления в приведенном выше определении привязки?
Проблема в том, что переменная pointer
и current-page
зависят друг от друга, поэтому, если я сначала нажму на что-нибудь, значение pointer
должно быть оценено немедленно, и в следующей инструкции я должен установить current-page
значение, основанное на значении указателя, которое изменилось. При нажатии код будет таким, как показано ниже:
<xforms:setvalue ref="$pointer"
value="($pointer + 1)"/>
<!-- i am assuming if the current-page is 2,
it will increment, else the value is set as per calculate -->
<xforms:setvalue ref="$current-page"
value="($current-page + 1)"
xxforms:if="($pointer = $max-pages)" />