Modèle d'entrée de changements de nombre Entier en Chaîne lors de changé
Ont une sorte de gamme de prix/fonctionnalité de notation basé sur une des entrées du modèle. Sur la charge, quand il est réglé depuis le backend, il commence comme un entier, mais lorsque vous tapez en elle, il se transforme en une chaîne de caractères. Est-il de toute façon Angulaire de déclarer la valeur d'un entier?
HTML:
<input type="text" name="sellPrice" id="sellPrice" class="sell-price" data-ng-model="menu.totalPrice" data-ng-change="updateMenuPriceRange()"required>
JS:
$scope.updateAggregatePricing();
if ($scope.menu.totalPrice === 0) {
$scope.menuPriceRange = "";
} else if ($scope.menu.totalPrice < 10) {
$scope.menuPriceRange = "$";
} else if ($scope.menu.totalPrice >= 10 && $scope.menu.totalPrice <= 12.50) {
$scope.menuPriceRange = "$$";
} else if ($scope.menu.totalPrice >= 12.51 && $scope.menu.totalPrice < 15) {
$scope.menuPriceRange = "$$$";
} if ($scope.menu.totalPrice >= 15) {
$scope.menuPriceRange = "$$$$";
} else {
$scope.menuPriceRange = "";
}
Vous devez vous connecter pour publier un commentaire.
Je sais je suis en retard, mais j'ai pensé que j'avais poster cette réponse que d'autres personnes pourraient être encore à la recherche de solutions de rechange.
Vous pourriez résoudre ce problème en utilisant la AngularJS directive fonction de liaison.
Le code:
Vous pouvez alors utiliser cette directive, sur un élément d'entrée pour s'assurer que la valeur que vous entrez, obtient analysée à un entier. (évidemment, cet exemple ne pas valider l'entrée pour s'assurer que ce qui a été entré est en fait un entier, mais vous pouvez facilement mettre en œuvre des ce avec l'utilisation d'expressions régulières, par exemple)
Plus d'informations sur ce sujet peuvent être trouvées sur le AngularJS docs sur les formes, la droite autour de la section de "validation Personnalisée": http://docs.angularjs.org/guide/forms .
Edit: mis à Jour
parseInt()
appel d'inclure la base 10, comme suggéré par adam0101integer
etng-model
à votre élément.Oui, utilisez l'entrée de type
number
:Terminé l'analyse du modèle comme un entier avant mon conditionnelle.
Très similaire à la accepté de répondre à de Yanik, sauf que moi j'ai essayé et ça ne fonctionne pas. Cette version de la documentation AngularJS fonctionne parfaitement pour moi, si.