1

在此示例代码http://plnkr.co/l6kv7x中,我想将焦点移到文本输入中,并在用户单击编辑按钮时选择内容,但我不知道如何在 AngularJS 中执行此操作。

4

2 回答 2

3

这个问题与AngularJS - Focusing an input element when a checkbox is clicked非常相似,所以这里有一个非常相似的解决方案:一个focus指令,它editing作为一个属性:

app.directive('focus', function() {
    return function(scope, element, attrs) {
        scope.$watch(attrs.focus, function(newValue) {
            newValue && element[0].focus()
        })
    }
});

正如@Josh 已经指出的那样,我们可以使用原生 DOM focus() 方法,通过使用 element[0] 访问原始 DOM 元素——元素本身是一个包装的 jqLit​​e(或 jQuery,如果已加载)元素。

的HTML:

<input ng-show="editing" type="text" ng-model="text" value="{{text}}"
  focus="editing">

小提琴

于 2013-01-08T02:44:16.583 回答
1

使用 AngularJS 没有直接的方法。您必须使用 JavaScript 或 JavaScript 库(如 jQuery)进行 DOM 操作,但不建议在控制器内执行任何 DOM 操作。你想要做的是使用指令。

于 2013-01-06T22:59:58.113 回答