在此示例代码http://plnkr.co/l6kv7x中,我想将焦点移到文本输入中,并在用户单击编辑按钮时选择内容,但我不知道如何在 AngularJS 中执行此操作。
问问题
3740 次
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 元素——元素本身是一个包装的 jqLite(或 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 回答