在此示例代码http://plnkr.co/l6kv7x中,我想将焦点移动到文本输入中,并在用户单击编辑按钮时选择内容,但我没有弄清楚如何在AngularJS中执行此操作。
答案 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元素 - 元素本身是一个包装的jqLite(或jQuery if loaded)元素。
HTML:
<input ng-show="editing" type="text" ng-model="text" value="{{text}}"
focus="editing">
答案 1 :(得分:1)
使用AngularJS没有直接的方法。您必须使用JavaScript或JavaScript库(如jQuery)进行DOM操作,但不建议在控制器内执行任何DOM操作。 你想要做的是使用指令。