Mam pole wprowadzania, w którym dozwolone są tylko liczby dodatnie.
<input id="charge-hours" type="text" class="charge-position-hours-edit" placeholder="0" ng-model="charge.hours">
Jak kontrolować ustawienia modelu ng.
Chciałbym napisać warunek wstępny przed wartością ustawioną w zakresie. Coś jak
$scope.precondition = function (value) {
if (!isNan(value)) {
$scope.value=value;
}else{
//do nothing
}
}
Czy jest to możliwe w javascript / angularjs? W jave byłby do tego nastawiony.
EDYTOWAĆ
Moje pytanie nie było wystarczająco jasne.
Naprawdę chcę, aby tylko liczby dodatnie można było wpisać w polu wejściowym i tylko liczby dodatnie powinny być powiązane z modelem ng angularjs.
Czy istnieje sposób, aby zapisać oldValue, jeśli użyję ng? Wtedy mogę napisać coś takiego
if (condition===true) //ok
else $scope.value=oldValue;
Odpowiedzi:
0 dla odpowiedzi № 1jeśli Twoim problemem jest upewnienie się, że wartość jest liczbą całkowitą i dodatnią, możesz użyć HTML5 do sprawdzenia tego.
Sprawdź ten link numer.
Aby sprawdzić poprawność numeru, możesz użyć ng-change dyrektywę, aby to kontrolować, jeśli chcesz więcej kontroli, użyj kluczowanie.
Zastanów się także, czy nie spojrzeć na „niestandardowa walidacja„część dokumentacji formularza angularjs - tak jak sugerował Patrick Ferreira.
-1 dla odpowiedzi № 2
Spróbuj tego:
<input id="charge-hours" type="text" class="charge-position-hours-edit" placeholder="0" ng-model="charge.hours" ng-change="precondition()">