Я попробовал этот код:Возможно ли иметь более одного пользовательского валидатора на угловом поле?
.directive('uniqueUsername', function (isUsernameAvailable) {
return {
restrict: 'A',
require: 'ngModel',
link: function (scope, element, attrs, ngModel) {
ngModel.$asyncValidators.uniqueName = isUsernameAvailable;
}
};
})
.directive("isMinSix", function() {
return {
restrict: "A",
require: "ngModel",
link: function (scope, element, attributes, ngModel) {
ngModel.$validators.isMinSix = function (modelValue) {
if (modelValue != null && modelValue.length < 6) {
return true;
} else {
return false;
}
}
}
}
})
.factory('isUsernameAvailable', function (appConstant, $q, $http) {
return function (username) {
var deferred = $q.defer();
var url = appConstant.baseUrl + '/api/user/existsByName';
$http({
url: url,
method: "PUT",
data: {
userName: username
}
}).then(function() {
// Found the user, therefore not unique.
deferred.reject("User name is taken");
}, function() {
// User not found, therefore unique!
deferred.resolve();
});
return deferred.promise;
}
})
Моя проблема заключается в том, что, когда я добавляю эти две директивы на вход только, а затем поставить точку отладки в проверках только один или другой будет срабатывать. Я не могу получить их как правильно работать в то же время:
<input class="inputField"
id="registerUserName"
name="registerUserName"
is-min-six
ng-model="aus.registerUserName"
ng-model-options="{ debounce: 3000 }"
ng-required="true"
placeholder="Username"
type="text"
unique-username
value="" />
Кто-нибудь есть какие-либо идеи, что я могу делать неправильно?
http://stackoverflow.com/questions/19177732/what-is-the-difference-between-ng-if-and-ng-show-ng-hide –
Посмотрите, как проверяется угловое обращение с ручками для того, чтобы частично катиться, но вы должны иметь возможность использовать его непосредственно в dom. –
Проблема в том, что я хотел получить сообщение в заголовок значка и с помощью угловой проверки. Я не уверен, как это сделать. Надеюсь, кто-то может придумать пример. –