使用angular.element函数动态获取当前焦点

时间:2016-05-12 15:59:49

标签: javascript jquery angularjs focus element

我试图通过角度和打字稿来获取当前输入焦点。 我正在使用 angular.element([selector])。focus(handler)函数,但是当我点击输入时它不会触发。

这是我的代码:

class TemplateController {
    lastFocused: HTMLInputElement;

    static $inject = ['$scope'];
    constructor(private $scope: ng.IScope) {

        angular.element("input[type='text']").focus((): void => {
            this.lastFocused = document.activeElement as HTMLInputElement;
            console.log("FOCUSED");
        });
    }
}

angular
    .module("app")
    .controller("[...]templateController", TemplateController);
}

这是我的html(输入代码段):

...

<input class="form-control" type="text" id="title" name="title" size="30" ng-maxlength="1000" required />

...

我做错了什么?

提前致谢:)

编辑:已解决

我能够通过在输入元素上使用 ng-focus 属性来解决这个问题:

<input class="form-control" type="text" id="title" name="title" size="30" ng-maxlength="1000" required ng-focus="templateCtrl.setFocusedElement()" />

并在控制器内部:

setFocusedElement(): void {
    this.$scope.lastFocused = document.activeElement;
}

这适用于我:)

1 个答案:

答案 0 :(得分:1)

尝试

angular.element('input').triggerHandler('focus');

或者如果它不起作用

angular.element('input').triggerHandler('click');