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