2

如何在归档时触发错误?假设我们得到的表单由姓名、电子邮件、密码组成。我们在服务器端检查电子邮件的唯一性,服务器发送像 { email: ['already take', 'another error' ] 等对象。我怎样才能进入表单并触发字段上的那些?

4

2 回答 2

1

听起来你想对输入字段进行异步验证。我假设你想做这样东西。

具体解决方法见这个博客

于 2015-06-17T13:59:14.733 回答
0

我明白了 - 不知道角度形式..

您可以在正式的 asyncValidator 中调用您的验证服务,然后解析结果并使用scope.fc.$setValidity. 可以在该validation部分中注册消息。

    validators: {
      asyncMultiValidator: {
        expression: function(viewValue, modelValue, scope) {
          $http.get('...validation-url...').success(function(result) {
            //assuming the service returns a map of validation results as {'validationName': isValid (boolean) }
            angular.foreach(result, function(isValid, validationName) {
              scope.fc.$setValidity(validationName, isValid);
            });
          })

          // this dummy validator is always valid
          return true;
        },
        message: 'dummy message - not being used'
      }
    },
    validation: {
      messages: {
        required: function(viewValue, modelValue, scope) {
          return scope.to.label + ' is required'
        },
        remote: function(viewValue, modelValue, scope) {
          return 'some remote error';
        }
      }
于 2015-06-17T16:14:42.830 回答