angularjs ng-repeat binding bug



谁能解释为什么在这种情况下 http://codepen.io/mikeward/pen/gwcjt 输入char时随时失去焦点,但在这种 http://codepen.io/anon/pen/fcrdh 情况下一切正常?

这是因为第二个示例使用对象而不是整数将模型绑定到视图。

模型通过引用绑定到ng-repeat的范围,当引用更改时,ng-repeat会重新渲染该模型 - 因此删除旧元素并创建一个新元素。

整数

是按值存储的,所以基本上当你改变一个整数时,它就会成为一个全新的模型(作为内存中的一个位置)。但是,当您使用对象时,当您仅更改其某些属性的值时,对该对象的引用将保持不变。

因此,作为一个简单的解释,该元素在第一个示例中失去了焦点,因为它不再是同一个元素。

最新更新