2

フィールドでエラーをトリガーするにはどうすればよいですか? 名前、電子メール、パスワードで構成されるフォームを取得したとします。サーバー側でメールの一意性を確認し、サーバーは{メール:[「すでに取得済み」、「別のエラー」]などのオブジェクトを送信します。フォームをタップしてフィールドでそれらをトリガーするにはどうすればよいですか?

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 に答える