нг-если не работает при загрузке страницы

0

У меня есть небольшая Угловая проверка, где я хочу, чтобы ошибка показывала, имеет ли вход меньше 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 руководство, что я делаю неправильно.

  • 1
    У вас есть некоторые опечатки в вашем HTML. Более того, ng-init = "highcharec" ничего не сделает. наконец, всегда лучше инициализировать varaible в контроллере: добавьте $ scope.handle = [];
Теги:

2 ответа

1

Это потому, что ваша переменная handle по-прежнему не определена, когда страница загружается (и остается такой до тех пор, пока вы не начнете вводить ее), а undefined < 3 оценивается как false. Чтобы исправить это, измените ваш ng-if на ng-if="handle.length<lowcharec || !handle".

0

Вы не показываете полный код. Поэтому нелегко понять, какова ваша фактическая проблема. Здесь вы можете увидеть рабочий пример.

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>
  • 0
    спасибо @niyasc, извините за то, что не показываю полный код, но то, что сказал Вальфрат, верно. Я не определил $ scope.handle = []. Просто сделал это, и он начинает показывать мне ошибку при загрузке страницы

Ещё вопросы

Сообщество Overcoder
Наверх
Меню