Angular JS:输入框失去了对按键的关注

Paw*_*yan 7 angularjs

我用来填充数据的模拟数据是

"StudentDetails":
[
     {
        "name": "name1",
        "code":"code1",
            "fields": {
            "username": "username1",
            "password": "sample",
            "key": 4513345667878
        }
    },
    {
        "name": "name2",
        "code":"code2",
        "fields": {
            "username": "username2",
            "secretkey": 1213145
        }
    }
]
Run Code Online (Sandbox Code Playgroud)

我使用以下模板代码填充它

<div ng-repeat="item in StudentDetails">
<div ng-repeat="(key,value) in StudentDetails.fields">
<div></div>
<div><input type="text" ng-model="StudentDetails.fields[key]"/></div></div>

</div>
Run Code Online (Sandbox Code Playgroud)

字段中的参数会针对每个对象进行更改.这里的问题是输入框中的单个按键,输入框失去焦点.我不得不反复点击输入框内部以输入数据.如何在没有框失去焦点的情况下更改输入框中的值.我使用了"按键跟踪"...并尝试在StackOverflow中发布类似问题的各种答案,但这没有帮助请帮助这个场景.. !!

use*_*317 18

问题是,随着模型对象的每次更改,ng-repeat重新生成整个数组,从而模糊输入框.

您需要使用新ngRepeat语法(在1.1.x中引入)并使用track by $index.

角度文档中的更多信息

<div ng-repeat="(i, item) in StudentDetails track by i">
  <div ng-repeat="(key,value) in StudentDetails.fields track by key">
  <div></div>
  <div><input type="text" ng-model="StudentDetails.fields[key]"/></div>
</div>
Run Code Online (Sandbox Code Playgroud)

  • 问题是,随着模型对象的每次更改,ng-repeat重新生成整个数组,从而模糊输入框.您需要使用新的ngRepeat语法(在1.1.x中引入)并使用track by $ index,更多信息[link](https://code.angularjs.org/1.1.5/docs/api/ng.directive: ngRepeat) (2认同)