Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 角度形式-如果在上一个选择字段中已选择该选项,则选择字段应给出错误_Angularjs_Angular Formly - Fatal编程技术网

Angularjs 角度形式-如果在上一个选择字段中已选择该选项,则选择字段应给出错误

Angularjs 角度形式-如果在上一个选择字段中已选择该选项,则选择字段应给出错误,angularjs,angular-formly,Angularjs,Angular Formly,我使用angular formly创建表单。我使用angular formly重复部分在Add按钮上动态添加了选择字段和文本区域 要求-从多个选择字段中,每个选择字段都应选择唯一选项 如何使用angular formly检查上一个选定字段中的选项是否已选定,并显示错误消息,如“货币已选定” Controller.js $scope.formFields = [ { type: 'repeatSection', key: 'details',

我使用angular formly创建表单。我使用angular formly重复部分在Add按钮上动态添加了选择字段和文本区域

要求-从多个选择字段中,每个选择字段都应选择唯一选项

如何使用angular formly检查上一个选定字段中的选项是否已选定,并显示错误消息,如“货币已选定”

Controller.js

$scope.formFields = [   {
          type: 'repeatSection',
          key: 'details',
          templateOptions: {
          btnText:'Add ',
            fields: [
              {
                className: 'row',
                fieldGroup: [
                        {
                        type: 'select', 
                        key: 'currency',
                        wrapper: 'loading', 
                     templateOptions: {
                          label: $translate.instant('CURRENCY'),
                          valueProp: "value",
                             labelProp: "name",
                           options:  [
                                {name: "Rupee", value: "INR"},
                                {name: "Doller", value: "$"},
                                {name: "Pound", value: "Pound"}
                              ] ,
                             required: true,
                             placeholder:  $translate.instant('SELECT TYPE FROM LIST'),
                         }
                       },          
                  {
                    type: 'textarea',
                    key: 'debitNote',
                    templateOptions:
                    {
                      label: $translate.instant('DEBIT NOTE'),
                      rows: 4
                    }
                  }
                ]
              }
            ]
          }

    }
];  
选项1:自定义验证器 制作一个自定义验证器,如:

vm.customValidator = {
  expression: function(viewValue, modelValue, scope) {
    if(scope.model.currencies){
      angular.forEach(scope.model.currencies, function(val, key) {
        if(val === modelValue) {
          console.log('Currency already selected! '+val+' === '+modelValue);
          return false;
        }
      });
    }
    return true;
  },
  message: 'Currency already selected'
};
例如:

*注意。由于我很忙,因此未显示验证消息。请参阅以下连结:

选项2:多选 使用多选: