В регистрационной форме у меня есть одно поле для номера электронной почты и мобильного телефона, но оно не работает должным образом.
<form name="regForm" >
<md-input-container flex md-no-float>
<input ng-model="vm.form.email" type="text" placeholder="Email or Phone" translate translate-attr-placeholder="REGISTER.EMAIL" name="email or phone" ng-pattern="/^([_a-z0-9]+(\.[_a-z0-9]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,5}))|\d+$/" required="true">
<div ng-messages="regForm.email.$error" ng-show="regForm.email.$touched">
<div ng-message="required">This field is required</div>
<div ng-message="email">Your email address is invalid</div>
</div>
</md-input-container>
</form>
Ниже код, показывающий схему в файле модели
var UserSchema = new Schema({
name: String,
email: {type: String, required: true, select: true},
password: {type: String, required: true, select: true},
});
Поле, которое вы пытаетесь ссылаться в ng-messages
и ng-show
, не существует (в regForm
нет ввода с name="email"
).
Для чего вы пытаетесь достичь, я бы использовал пользовательскую логику проверки, как здесь. Вы даже можете использовать специальный валидатор, как описано в документах.