Error de lanzamiento del model ng en el número de tipo de input en 1.3 angular

Tengo un campo de input que quiero que el usuario ingrese un número, así que he hecho un campo de input con tipo = "número".

Cuando lo uso en 1.2 no recibo errores

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.27/angular.min.js"></script> <script> var app = angular.module('app', []); app.controller('MainCtrl', ['$scope', function ($scope) { $scope.person = [ {"name": "Alex","pts": "10"} ]; }]); </script> <div ng-app="app"> <div ng-controller="MainCtrl"> {{person | json }}<br> name: <span ng-bind="person[0].name"></span></br> <!-- pts: <input ng-model="person[0].pts"> --> pts: <input type="number" ng-model="person[0].pts"><br? </div> </div> 

Sin embargo, cuando lo uso en 1.3 obtengo el error: [ngModel: numfmt], pero cuando actualizo el número, parece que aún queda vinculado al scope.

  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script> <script> var app = angular.module('app', []); app.controller('MainCtrl', ['$scope', function ($scope) { $scope.person = [ {"name": "Alex","pts": "10"} ]; }]); </script> <div ng-app="app"> <div ng-controller="MainCtrl"> {{person | json }}<br> name: <span ng-bind="person[0].name"> name: <span ng-bind="person[0].name"></span></br> <!-- pts: <input ng-model="person[0].pts"> --> pts: <input type="number" ng-model="person[0].pts"> </div> </div> 

¿Estoy haciendo algo mal aquí o no hay nada de qué preocuparse? Preferiría no tener los errores en mi console cuando bash depurar otros problemas

Defina la propiedad pts como un number lugar de una string :

 var app = angular.module('app', []); app.controller('MainCtrl', ['$scope', function ($scope) { $scope.person = [ {"name": "Alex","pts": 10} ]; }]); 

Agregue esto para solucionar el problema:

 myApp.directive('input', [function() { return { restrict: 'E', require: '?ngModel', link: function(scope, element, attrs, ngModel) { if ( 'undefined' !== typeof attrs.type && 'number' === attrs.type && ngModel ) { ngModel.$formatters.push(function(modelValue) { return Number(modelValue); }); ngModel.$parsers.push(function(viewValue) { return Number(viewValue); }); } } } }]); 

Esta directiva analizará el valor de cadena para cualquier input de tipo 'número'. Entonces no obtendrás errores:

 module.directive('input', function(){ return { require: 'ngModel', link: function(scope, elem, attrs, ngModel){ if(attrs.type == 'number'){ ngModel.$formatters.push(function(value){ return parseFloat(value); }); } } }; }); 

Quite las comillas alnetworkingedor de "10". Angular espera un número, y le está dando una string.

Es fácil solución Error "AngularJS Documentation for numfmt" parse Escriba en Int o Float ­čśë

 <input type="number" ng-model="inputNumDemo" /> .... app.controller('Demo',[ '$scope', function($scope){ // Input numeric convert String "10" to Int 10 or Float $scope.f.inputNumDemo = parseInt(d.data.inputDemo ); }]); .... 

Hola Solo agregue este código en app.js

 angular.module('numfmt-error-module', []) .run(function($rootScope) { $rootScope.typeOf = function(value) { return typeof value; }; }) .directive('stringToNumber', function() { return { require: 'ngModel', link: function(scope, element, attrs, ngModel) { ngModel.$parsers.push(function(value) { return '' + value; }); ngModel.$formatters.push(function(value) { return parseFloat(value); }); } }; });