У меня есть небольшая Угловая проверка, где я хочу, чтобы ошибка показывала, имеет ли вход меньше 3 чартеров или более 6 чартеров.
Для того, что я сделал, ошибка отображается только тогда, когда я начинаю вводить ввод, а не иначе, например; если я загружаю страницу и определенно загружаю страницу, входные charecters меньше 3, поэтому она должна показывать ошибку, но она показывает ошибку, только когда я начинаю вводить ввод.
мой html:
<form name="someform">
<input type="text" ng-model="handle"/>
<div ng-if="handle.length<lowcharec" class="alert" style="color: red">sorry, maxlength cannot be less than 3
</div>
<div ng-if="handle.length>highcharec" class="alert" ng-init="highcharec" style="color: red">sorry, maxlength cannot be greater than 6
</div>
<input type="submit"/>
</form>
мой сценарий:
$scope.lowcharec = 3;
$scope.highcharec = 6;
Я мама что-то пропустил и стал новым для углового, PLS руководство, что я делаю неправильно.
Это потому, что ваша переменная handle
по-прежнему не определена, когда страница загружается (и остается такой до тех пор, пока вы не начнете вводить ее), а undefined < 3
оценивается как false. Чтобы исправить это, измените ваш ng-if на ng-if="handle.length<lowcharec || !handle"
.
Вы не показываете полный код. Поэтому нелегко понять, какова ваша фактическая проблема. Здесь вы можете увидеть рабочий пример.
var app = angular.module('app', []);
app.controller('FormCtrl', function($scope) {
$scope.handle = '';
$scope.lowcharec = 3;
$scope.highcharec = 6;
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app="app">
<form name="someform" ng-controller="FormCtrl">
<input type="text" ng-model="handle" />
<div ng-if="handle.length < lowcharec" class="alert" style="color: red">sorry, maxlength cannot be less than 3
</div>
<div ng-if="handle.length > highcharec" class="alert" ng-init="highcharec" style="color: red">sorry, maxlength cannot be greater than 6
</div>
<input type="submit" />
</form>
</body>