如何在嵌入式HTML表单中预先选择一个选项?

时间:2018-09-27 11:46:26

标签: camunda

我尝试以Camunda Tasklist的嵌入式HTML格式预先选择option中的select,但是始终总是先选择第一个选项。

我关注了Binding to a Process Variable

  

绑定到过程变量

     

可以使用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 :(得分:0)

我找到了一种解决方法,请参见Camunda Reference

  

实施自定义字段

     

下面是一个小的用法示例,它结合了到目前为止说明的一些功能。它使用自定义JavaScript与不使用任何cam-variable-*指令的表单域实现自定义交互。

     

它显示了如何将自定义脚本用于

     
      
  • 声明要从后端获取的变量,
  •   
  • 将变量的值写入表单字段,
  •   
  • 在提交时读取值。
  •   
     

[...]

     

以上示例使用jQuery与HTML控件进行交互。如果您使用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>