角度输入限制为 1 个字符

plu*_*us- 2 angularjs

我想知道为什么在此示例中每次输入不能输入多个字符:

http://jsfiddle.net/R3uY4/2/

<div ng-app>
  <div ng-controller="ctrl">
     <table>
            <tr>
                <td ng-repeat="f in foo">
                    <input ng-model="foo[$index]" style="width:60px" ></input>
                </td>
            </tr>
        </table>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

js:

function ctrl($scope) {
  $scope.foo = [];
    for (var i=0; i<5; i++) {
        $scope.foo.push('');
    }  
}
Run Code Online (Sandbox Code Playgroud)

Ste*_*wie 5

您正在将模型绑定到原语。那样是行不通的。在这个github 问题中有完整的解释。此外,每次更改输入值时,ng-repeat 都会刷新。这就是你失去焦点的原因。

始终绑定到对象:

HTML:

<td ng-repeat="f in foo">
  <input ng-model="f.value" style="width:60px" />
</td>
Run Code Online (Sandbox Code Playgroud)

控制器:

function ctrl($scope) {
  $scope.foo = [];
    for (var i=0; i<5; i++) {
        $scope.foo.push({value: ''});
    }
}
Run Code Online (Sandbox Code Playgroud)