一尘不染

在ng-show之后将焦点设置在输入字段上

angularjs

数据加载后是否可以通过控制器设置输入字段的焦点(在这种情况下,通过$ resource)?

通过ng-show隐藏输入,直到从API返回数据为止,但是我找不到将焦点设置在输入上的方法。我知道输入的ng-
model名称,以及输入名称,这意味着我可以通过jQuery来做到这一点,但我宁愿使用AngularJS方式来做到这一点。

我在这里尝试了很多指令示例,但是它们似乎都集中在1.2 ng之前,或者首先依靠ng-click进行单击(在我的情况下是不可能的),或者只是行不通。
非常感谢收到任何提示。


阅读 227

收藏
2020-07-04

共1个答案

一尘不染

这是一个简单的指令,可能对您有用

<input focus-on="!!myResourceData" />

.directive('focusOn',function($timeout) {
    return {
        restrict : 'A',
        link : function($scope,$element,$attr) {
            $scope.$watch($attr.focusOn,function(_focusVal) {
                $timeout(function() {
                    _focusVal ? $element[0].focus() :
                        $element[0].blur();
                });
            });
        }
    }
})
2020-07-04