最近发现angular在使用input输入框的ng-model绑定scope变量的时候,发现,输入长串的数字将会出错。代码如下:

<html>
<head>
    <meta charset="UTF-8">
    <title>test</title>
    <script type="text/javascript" src="../script/angular1.4.6.min.js"></script>
</head>
<body ng-app="myProject" ng-controller="test" >
    <input id="payCode" type="number" ng-model="data" ng-change="input()"/>

    <script type="text/javascript">
        var app = angular.module("myProject", []);
        app.controller("test",function($scope){
            $scope.data = "";
            $scope.input = function(){
                console.log($scope.data+"----------"+document.getElementById("payCode").value);
            };
        });
    </script>
</body>
</html>

我使用ng-change,将每一次输入后,angular的$scope.data变量值以及document.getElementById获取到的输入框的值都打印出来,效果如下:

显而易见,从第17位开始,angular自动获取的的值就出错了,而document.getElementById获取到的值依旧是正确的。我换了angular1.6.2的版本一试,依然存在这个问题,我想,这也许是angular的一个小bug,和大家一起探讨一下。