ng-repeat中的<input />元素在编辑输入后不会聚焦

时间:2015-12-18 15:52:38

标签: javascript angularjs input focus

我正在实施可编辑的表格。我在网络上的所有教程中都观察到了同样的错误。如果您有2个可编辑项,则可以更改其中一个。之后,你无法关注另一个。你必须做两次点击。

以下是其中一个教程: http://www.codelord.net/2014/05/10/understanding-angulars-magic-dont-bind-to-primitives/

这是jsfiddle:

jsfiddle with a bug

这是控制器代码:

<div ng-controller="bookCtrl">
    <div ng-repeat="tag in book.tags track by $index">
        <input type="text" ng-model="book.tags[$index]"/>
    </div>

    My tags are <b>really</b>: {{ book.tags }}
</div>

请注意,跟踪在此处没有帮助。教程中的所有三个样本(以及许多其他样本)都有这个问题。

我该如何解决这个问题?

更新:我在chrome 47上,也在firefox中观察到相同的内容。 更新2:我已上传video,错误无法100%重现,但最后一次鼠标点击表示问题。我的鼠标工作正常!

1 个答案:

答案 0 :(得分:0)

HTML:

<div ng-controller="bookCtrl">
  <div ng-repeat="tag in book.tags track by $index">
    <input type="text" ng-model="book.tags[$index]" ng-focus="selectText($event)" />
  </div>

  My tags are <b>really</b>: {{ book.tags }}
</div>

将此添加到Controller:

    $scope.selectText = function($event) {
      $event.target.select();
    };