+ var controlField = namePrefix + ctrl.defn.input_attrs.control_field;
+ $scope.$watch('dataProvider.getFieldData()["' + controlField + '"]', function(val) {
+ // After switching option list, remove invalid options
+ function validateValue() {
+ var options = $scope.getOptions(),
+ value = $scope.dataProvider.getFieldData()[ctrl.fieldName];
+ if (_.isArray(value)) {
+ _.remove(value, function(item) {
+ return !_.find(options, function(option) {return option.id == item;});
+ });
+ } else if (value && !_.find(options, function(option) {return option.id == value;})) {
+ $scope.dataProvider.getFieldData()[ctrl.fieldName] = '';
+ }
+ }
+ if (val && (typeof val === 'number' || val.length)) {
+ $('input[crm-ui-select]', $element).addClass('loading').prop('disabled', true);