如何处理AngularJS中文本输入的条件焦点和选择?

时间:2013-01-06 12:50:34

标签: javascript angularjs

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

2 个答案:

答案 0 :(得分: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 if loaded)元素。

HTML:

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

Fiddle

答案 1 :(得分:1)

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