angularjs - Angular JS : Input box losing focus on keypress

标签 angularjs

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

"StudentDetails":
[
     {
        "name": "name1",
        "code":"code1",
            "fields": {
            "username": "username1",
            "password": "sample",
            "key": 4513345667878
        }
    },
    {
        "name": "name2",
        "code":"code2",
        "fields": {
            "username": "username2",
            "secretkey": 1213145
        }
    }
]

我使用以下模板代码填充它
<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>

字段中的参数随每个对象而变化。
这里的问题是在输入框中单击一次键,输入框失去了焦点。我不得不反复在输入框内单击以输入数据。
如何在输入框不失去焦点的情况下更改值。
我曾经使用过“按键跟踪” ...并且还尝试过将各种答案发布到StackOverflow中的类似问题,但这并没有帮助
请帮助这种情况下..!

最佳答案

问题在于,每次对模型对象进行更改时,ng-repeat都会重新生成整个数组,从而使输入框变得模糊。

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

More info in the angular documentation

<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>

关于angularjs - Angular JS : Input box losing focus on keypress,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20326312/

相关文章:

javascript - 添加 Angularjs 代码后,我无法在 Chrome 中右键单击网页

javascript - 从日期 Javascript 集合中查找日期范围

javascript - 当输入无效时,Angular 可以将 css 类添加到父/兄弟元素吗

angularjs - 如何在HTML模板Angular JS中执行JS?

javascript - 在调用 ng-change 之前验证复选框

angularjs - ng-repeat 在编译 html 后不加载数据

javascript - 显示下一个选项卡 Bootstrap Angular JS

angularjs - IBM Single Sign On Service 是否允许使用 JWT token ?

angularjs - {{::photo.src}} 的一次性绑定(bind)抛出错误

javascript - ReferenceError : invalid assignment left-hand side (app. js:41:27) & 没有显示任何 Angular