【发布时间】:2016-10-03 11:55:23
【问题描述】:
我正在使用ng-messages 来验证我的注册表单字段,但是我有一个问题,我无法检查是否使用了用户名,直到我向服务器发送注册请求。目前我有这种类型的代码:
UserPool.signUp(vm.form.username, vm.form.password, attributes)
.then(function (result) {
$state.go('app.pages_auth_confirm', {
user: result.user
});
})
.catch(function () {
$scope.registerForm.username.$invalid = true;
$scope.registerForm.username.$error.usernameAlreadyExists = true;
});
和 HTML:
<input name="username" ng-model="vm.form.username" placeholder="Name" required>
<div ng-messages="registerForm.username.$error" role="alert">
<div ng-message="required">
<span>Username field is required</span>
</div>
<div ng-message="usernameAlreadyExists">
<span>User with this username already exists</span>
</div>
</div>
这可行,但我想知道实现该功能的正确方法。注册表单还有许多其他字段,手动更改其中一些字段以显示错误似乎不是一个好主意。我还对角度验证和消息进行了一些研究,发现了自定义验证和$asyncValidators,但我也不能使用该功能,因为据我了解,我需要某种 API 来获取有关使用的用户名的信息,但我没有那种可能性,正如我已经说过的,在我发送注册请求之前,我无法检查是否使用了用户名。那么有人可以告诉我该怎么做吗?使用这种验证的正确方法是什么?
【问题讨论】:
标签: javascript angularjs validation ng-messages