Как предварительно выбрать опцию во встроенной HTML-форме? - PullRequest
0 голосов
/ 27 сентября 2018

Я пытаюсь предварительно выбрать option из select во встроенной HTML-форме в Camunda Tasklist , но всегда выбирается первый вариант.

Я следовал Привязка к переменной процесса :

Привязка к переменной процесса

Поле выбора можетбыть привязанным к переменной процесса, используя директиву cam-variable-name:

<select cam-variable-name="foo" cam-variable-type="String">
    <option>bar</option>
    <option>zar</option>
</select>

Исследования

Я также читаю CAM-3173 :

в поле выбора не отображается правильная опция

Если я установлю значение переменной в поле выбора в стартовой форме, следующая задачаформа не показывает вариант, который был выбран в стартовой форме.Он использует тот же блок выбора.

, но я использую Camunda 7.9, и проблема исправлена ​​с версии 7.2.3.

HTML

<form>
    <select cam-variable-name="variable" cam-variable-type="String">
        <option value="option1">option1</option>
        <option value="option2">option2</option>
    </select>
</form>

Результат

option1 предварительно выбран.Я проверил переменную процесса перед вводом пользовательской задачи, и она содержит option2.

Что я сделал не так?Если ошибка все еще существует, есть ли обходной путь?

1 Ответ

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

Я нашел обходной путь, см. Справочник Камунды :

Реализация пользовательских полей

Ниже приводится небольшое использованиепример, который сочетает в себе некоторые функции, объясненные до сих пор.Он использует пользовательский JavaScript для реализации пользовательского взаимодействия с полем формы, которое не использует никаких директив cam-variable-*.

Показывает, как можно использовать пользовательские сценарии для

  • , объявляющего переменную
  • записывает значение переменной в поле формы,
  • читает значение при отправке.

[...]

В приведенном выше примере для взаимодействия с элементами управления HTML используется jQuery.Если вы используете AngularJS, вы также можете заполнить $scope в обратном вызове variables-fetched и прочитать значения из $scope в обратном вызове submit:

Мой измененный HTML:

<form>
    <script cam-script type="text/form-script">
        camForm.on('form-loaded', function() {
            camForm.variableManager.fetchVariable('variable');
        });

        camForm.on('variables-fetched', function() {
            $scope.variable = camForm.variableManager.variable('variable');
        });

        camForm.on('submit', function() {
            camForm.variableManager.variableValue('variable', $scope.variable);
        });
    </script>
    <select data-ng-model="variable">
        <option value="option1">option1</option>
        <option value="option2">option2</option>
    </select>
</form>
...