настраиваемый элемент управления множественным выбором в трафарете alfresco activiti

Перейдя по этой ссылке Пользовательский элемент управления Alfresco в трафарете Я создал пользовательский элемент управления множественным выбором с теми же шагами, что и в сообщении (Alfresco Activiti), множественный выбор работает нормально, но проблема, с которой я столкнулся, теперь в операции видимости не работает работа элемента управления, например, есть текстовое поле, и в его разделе видимости я применяю условие всякий раз, когда значение значения элемента управления с множественным выбором среднее и высокое скрывает этот элемент управления, как указано в прикрепленном изображении.введите здесь описание изображения . код для множественного выбора пользовательского элемента управления

<div ng-controller="multiselectController">
    <select  name="multiselect"  multiple ng-model="field.value" 
            ng-options="option.code as option.name for option in field.options" 
            class="form-control ng-pristine ng-valid ng-scope ng-valid-required ng-touched"
            >
        <option value="">--Select State--</option>
    </select>
</div>

код углового контроллера

angular
.module('activitiApp')
.controller('multiselectController', 
  ['$rootScope', '$scope', '$http',
   function ($rootScope, $scope, $http) {


        // that responds with JSON
        $scope.field.options = [];
        // in case of array values without rest services        
        if($scope.field.params.customProperties.ElxwfOptionsArrayMultiselect){
            $scope.field.options = JSON.parse($scope.field.params.customProperties.ElxwfOptionsArrayMultiselect);
       } else($scope.field.params.customProperties.ElxwfRestURLforMultiselect) {
            $http.get($scope.field.params.customProperties.ElxwfRestURLforMultiselect).
                success(function(data, status, headers, config) {
                    var tempResponseArray = data.RestResponse.result;

                    for (var i = 0; i < tempResponseArray.length; i++) {
                        var state = { name: tempResponseArray[i].name };
                        $scope.data.states.push(state);    
                    }    
                }).
                error(function(data, status, headers, config) {
                    alert('Error: '+ status);
                    tempResponseArray = [];
                }
            );      
       } 

   }]
);

введите здесь описание изображения

помогите мне в этом отношении.


person Ali    schedule 23.07.2017    source источник


Ответы (1)


Вероятно, это связано с тем, что ваш код видимости не ожидает массив. Вам нужно проверить, содержит ли массив, а не равно и не равно.

person Greg Harley    schedule 25.07.2017
comment
Harley, в разделе видимости нет такой опции, не могли бы вы помочь мне в этом отношении, как этого добиться? - person Ali; 26.07.2017
comment
Я думаю, что это нетривиальная проблема. Чтобы решить эту проблему, я бы включил новый Javascript, который запускается событием formFieldUpdated. Проверьте, является ли поле вашим настраиваемым селектором, а затем программно установите видимость другого поля ввода из скрипта. Не должно быть слишком трудно достичь. - person Greg Harley; 26.07.2017