Я некоторое время пытался найти информацию о том, как использовать угловую проверку для отображения сообщений, но с определенным атрибутом min или max.
Если у меня есть поле input[type="number"]
с такими атрибутами, как min=1
или max=10
, и пользователь вводит 11
, мне нужно сообщение проверки, которое говорит: "The number should be less than 10"
. А вот число 10
надо брать из атрибута max
динамически.
Я хотел бы иметь сообщения в отдельном шаблоне. У меня есть следующее:
<!-- default ng-messages -->
<script type="text/ng-template" id="common-messages">
<span ng-message="required" class="help-block">This field is required</span>
<span ng-message="maxlength" class="help-block">Must be no longer than {{maxlength}} characters</span>
<span ng-message="min" class="help-block">This number must be greater than {{min}}.</span>
<span ng-message="max" class="help-block">This number must be less than {{max}}.</span>
<span ng-message="number" class="help-block">A number is required</span>
<span ng-message="date" class="help-block">A date is required</span>
</script>
а потом в форме
<div class="container" ng-controller="app.packaging.PackagingAddController as package">
<form name="packageForm" ng-submit="package.save()" role="form" novalidate class="form-horizontal">
<input type="text" name="packageCount" ng-model="package.model.packageCount" class="form-control" max="10 " />
<div ng-messages="packageForm.packageCount.$error" role="alert" ng-show="packageForm.$submitted || packageForm.packageCount.$touched" ng-messages-multiple>
<div ng-messages-include="common-messages"></div>
</div>
</form>
</div>
Проблема в том, что показана ошибка This number must be less than .
, поэтому {{max}} не вводится. Есть ли способ добиться этого, чтобы я мог повторно использовать шаблон общих сообщений?
PS: этот поток Как получить минимальные и максимальные значения input angularjs бесполезен для моего вопроса, поскольку он не использует повторно шаблон и не считывает атрибут html input max.
{{max}}
, вам нужно создать пользовательскую директиву для достижения того, чего вы хотите. - person developer033   schedule 22.07.2016